引入 required 模块html
var http = require("http");
建立服务器mongodb
http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // 发送响应数据 "Hello World" response.end('Hello World\n'); }).listen(8888);
npm install expressexpress
//app.js //加载模块 var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); //生成一个express实例 app var app = express(); //设置 views 文件夹为存放视图文件的目录, 即存放模板文件的地方,dirname 为全局变量,存储当前正在执行的脚本所在的目录。 app.set('views', path.join(__dirname, 'views')); //设置视图模板引擎为 ejs app.set('view engine', 'ejs'); //设置/public/favicon.ico为favicon图标 app.use(favicon(__dirname + '/public/favicon.ico')); //__filename 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不必定相同。 若是在模块中,返回的值是模块文件的路径。 //__dirname 表示当前执行脚本所在的目录。 //加载日志中间件 app.use(logger('dev')); //加载解析json的中间件 app.use(bodyParser.json()); //加载解析urlencoded请求体的中间件。 app.use(bodyParser.urlencoded({ extended: false })); //加载解析cookie的中间件 app.use(cookieParser()); //设置public文件夹为存放静态文件的目录 app.use(express.static(path.join(__dirname, 'public'))); //路由控制器 app.use('/', routes); app.use('/users', users); //捕获404错误,并转发到错误处理器 app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); //开发环境下的错误处理器,将错误信息渲染error模版并显示到浏览器中。 if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } //生产环境下的错误处理器,将错误信息渲染error模版并显示到浏览器中。 app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); //导出app实例供其余模块调用。 module.exports = app;
routes/index.js //生成一个路由实例用来捕获访问主页的GET请求,导出这个路由并在app.js中经过app.use('/', routes); 加载。这样,当访问主页时,就会调用res.render('index', { title: 'Express' });渲染views/index.ejs模版并显示到浏览器中。``` var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); module.exports = router;
修改:npm
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var app = express(); app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); //app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); routes(app); app.listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port')); });
module.exports = function(app) { app.get('/', function (req, res) { res.render('index', { title: 'Express' }); }); };
//路由规则
req.query: 处理 get 请求,获取 get 请求参数
req.params: 处理 /:xxx 形式的 get 或 post 请求,获取请求参数
req.body: 处理 post 请求,获取 post 请求体
req.param(): 处理 get 和 post 请求,但查找优先级由高到低为 req.params→req.body→req.queryjson
//经常使用中间件:
http://www.expressjs.com.cn/guide/using-middleware.html
npm install express Web 框架
npm install mongoose mongoose模块
npm install mongodb mongodb模块
npm install morgan 日志请求到控制台
npm install body-parser 解析客户端请求的body中的内容
npm install method-override
npm install multer 实现文件上传
npm install express-session session中间件
npm install cookie-parser 解析 cookie 的中间件浏览器
var fs = require("fs") 导入文件系统模块(fs)服务器
var fs = require("fs"); // 异步读取 fs.readFile('input.txt', function (err, data) { if (err) { return console.error(err); } console.log("异步读取: " + data.toString()); }); // 同步读取 var data = fs.readFileSync('input.txt'); console.log("同步读取: " + data.toString()); console.log("程序执行完毕。");
//打开文件 var fs = require("fs"); // 异步打开文件 console.log("准备打开文件!"); fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log("文件打开成功!"); });