var express = require('express');
var app = express();
app.get('/', function(req, res, next) {
res.send('Hello World');
next()
});
app.listen(3000, function() {
console.log('App listening on port 3000!');
});
(2)express-generetor生成项目
app.js
var express = require('express');
var app = express();
app.get('/', function (req, res, next) {
res.send('Hello World');
next();
});
bin目录
var app = require('./app');
var http = require('http');
var server = http.createServer(app);
server.listen(3000);
一、入口 express服务demo: (1) express原生
(2)express-generetor生成项目
express的index.js 中module.exports = require('./lib/express'); 导出express 而express.js中 exports = module.exports = createApplication; 导出的即createApplication函数
所以var express = require('express'); express就是 createApplication()函数 var app = express(); app 就是createApplication()返回的app函数
demo1中app.listen() 调用
这和demo2中 var server = http.createServer(app);的效果是一样的。 都是将 var app = function(req, res, next) { app.handle(req, res, next); };作为回调函数,传入node提供的http模块中,从而启动服务。
总结:express应用就是将function(req, res, next) { app.handle(req, res, next);} 函数作为http.createServer()的回调函数,从而调用handle(req, res, next)处理请求。