中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js中怎么利用connect和express框架實現數學運算

發布時間:2021-07-21 10:39:01 來源:億速云 閱讀:121 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關Node.js中怎么利用connect和express框架實現數學運算,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、使用connect框架

.use方法用于綁定中間件到connect服務器,它會配置一系列在接到請求時調用的中間件模塊,此例中我們要配置的中間件有favicon logger static router

app.get/post/put        寫法:app.requestName('path', function(req, res, next){});

app-connect.js

 var connect = require('connect');  //npm install connect
 connect.createServer()
   .use(connect.favicon())
   .use(conect.logger())
   .use('/filez', connect.static(__dirname + '/filez'))
   .use(connect.router(function(app){
     app.get('/', require('./home-node').get);
     //一個URL字符串和兩個函數類型的參數
     //路由器配置函數可以包含不限數量的函數,你可以為自己的應用構造一個處理函數的隊列
     app.get('/square', htutil.loadParams, require('./square-node').get);
     app.get('/factorial', htutil.loadParams, require('./factorial-node').get);
     app.get('/fibonacci', htutil.loadParams, require('./fibo2-node').get);
     app.get('/mult', htutil.loadParams, require('./mult-node').get);
   })).listen(3000);
console.log('listening to http://localhost:3000');

2、使用express框架

Express框架是一個基于connect(一個中間件框架)的web應用框架

Express專注于構建一個應用,包括提供一個模板系統;connect專注于做web服務的基礎設施

安裝Express和EJS(模塊處理系統) npm install express ejs

app-express.js

var htutil = require('./htutil');
var math = require('./math');
var express = require('express');
//var app = express.createServer(express.logger()); //express 2.X
var app = express();  //express 3.X
//可選,因為Express下默認為CWD/views
app.set('views', __dirname + '/views');
app.engine('.html', require('ejs').__express);
app.set('view engine', 'ejs');
app.configure(function(){
  app.use(app.router);
  app.use(express.static(__dirname + '/filez'));
  //默認的錯誤處理函數,顯示棧軌跡
  //如果要顯示用戶友好的錯誤,app.err(function(err, req, res, next){
  // res.send(error page); //or res.render('template');
  // });
  app.use(express.errorHandler({
    dumpExceptions: true, showStack: true
  }));
/*
改成下面的話,瀏覽器會顯示一個簡單的消息-Internal Server Error內部服務器錯誤
app.use(express.errorHandler({
    dumpExceptions: true
  }));
*/
});
//以上配置了必需的中間件,因為這里展示的配置項對應的是模板系統的配置,所有.html文件會由EJS引擎處理
//以下是路由器配置
app.get('/', function(req, res){
  res.render('home.html', {title: "Math Wizard"});
});
app.get('/mult', htutil.loadParams, function(req, res){
  if (req.a && req.b) req.result = req.a * req.b;
  res.render('mult.html', {title: "Math Wizard", req: req});
});
app.get('/square', htutil.loadParams, function(req, res){
  if (req.a) req.result = req.a * req.a;
  res.render('square.html', {title: "Math Wizard", req: req});
});
app.get('/fibonacci', htutil.loadParams, function(req, res){
  if (req.a){
    math.fibonacciAsync(Math.floor(req.a), function(val){
      req.result = val;
      res.render('fibo.html', {title: "Math Wizard", req: req});
    });
  }else {
    res.render('fibo.html', {title: "Math Wizard", req: req});
  }
});
app.get('/factorial', htutil.loadParams, function(req, res){
  if (req.a) req.result = math.factorial(req.a);
  res.render('factorial.html', {title: "Math Wizard", req: req});
});
app.get('/404', function(req, res){
  res.send('NOT FOUND' + req.url);
});
//res.render函數通過一個模板文件渲染數據,EJS只是Express里眾多模板引擎中的一個
//配置目的是讓EJS能夠為views目錄下的所有.html文件服務
/*Express里還有其他一些模板引擎
  res.render('index.haml', {..data..}); 使用Haml
  res.render('index.jade', {..data..}); 使用Jade
  res.render('index.ejs', {..data..}); 使用EJS
  res.render('index.coffee', {..data..}); 使用CoffeeKup
  res.render('index.jqtpl', {..data..}); 使用jQueryTemplates
也可以通過 app.set('view engine', 'haml');
     app.set('view engine', 'jade'); 方法來改變默認的渲染引擎
layout.html
默認情況下,模板中用于渲染的內容會被命名為body,然后傳遞到layout模板中,當app-express.js調用
res.render('fibo.html'...)時,它會先用fibo.html渲染對應的頁面片段,然后再使用layout模板渲染整個頁面
有兩種方法覆蓋這一默認的行為
1、在Express里創建一個全局的配置,通過這個全局配置來控制layout模板的啟用與禁用
app.set('view options', {layout: false(or true)});
2、覆蓋layout模板對應的渲染方式或者使用不同的layout模板
res.render('myview.ejs', {layout: false(or true)});
或者res.render('page', {layout: 'mylayout.jade'});
<% code %> Javascript代碼
<%= code %> 顯示替換過HTML特殊字符的內容
<%- code %> 顯示原始HTML內容
*/
app.listen(3000);
console.log('listening to http://localhost:3000');

html頁面放在views目錄下

layout.html

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
  <h2><%=title%></h2>
  <table>
    <tr>
      <td>
        <div class="navbar">
          <p><a href="/" rel="external nofollow" >home</a></p>
          <p><a href="/mult" rel="external nofollow" >Multiplication</a></p>
          <p><a href="/square" rel="external nofollow" >Square</a></p>
          <p><a href="/factorial" rel="external nofollow" >Factorial</a></p>
          <p><a href="/fibonacci" rel="external nofollow" >Fibonacci</a></p>
        </div>
      </td>
      <td></td>
    </tr>
  </table>
</body>
</html>

home.html

<% include layout.html %>
<p>Math Wizard</p>

mult.html

<% include layout.html %>
<% if (req.a && req.b){ %>
  <p class="result">
    <%=req.a%> * <%=req.b%> = <%=req.result%>
  </p>
<% } %>
<p>Enter numbers to multiply</p>
<form name="mult" action="/mult" method="get">
  A: <input type="text" name="a" /><br/>
  B: <input type="text" name="b" />
  <input type="submit" name="Submit" />
</form>

上述就是小編為大家分享的Node.js中怎么利用connect和express框架實現數學運算了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

许昌市| 镇远县| 平定县| 禄丰县| 清新县| 南川市| 华坪县| 彩票| 临潭县| 苍溪县| 周宁县| 桦南县| 雅江县| 汉川市| 托克托县| 合江县| 娱乐| 樟树市| 沅陵县| 彭水| 汪清县| 兴业县| 安龙县| 广南县| 离岛区| 陕西省| 万山特区| 资中县| 枣庄市| 全椒县| 苏尼特左旗| 建宁县| 炎陵县| 安阳市| 鄯善县| 新丰县| 东平县| 金秀| 瑞昌市| 塔城市| 家居|