引入 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("文件打開成功!"); });