这期内容当中小编将会给大家带来有关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
}));
});
//以上配置了必需的中间件,因为这里展示的配置项对应的是模板系统的配置,所有.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文件服务
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框架实现数学运算了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。