Node create server

header

對不起,我是一個前端,一些同窗說我是作前臺的,對,我以前就是寫頁面的。之因此要再學Node,一方面是工做須要,有時(純)後端不配合優化性能問題;另外一方面是後端知識可以促進前端發展(你們說),固然頁面重構技術除外。html

最近又看了一遍《node深刻淺出》,但願樸大能再寫其餘書籍,或者再版。Node的書籍主要包括 node基礎知識、connect && middlewar、Express、線上部署等內容,《node實戰》也是這個佈局(layout)。說一些概念的時候,你們也能說一個大概,如下內容主要以demo爲主。前端

請注意:如下內容包說,不包對 node

content

Simple server

Node 提供的相對底層的架構,能夠輕鬆的實現一個server。如:git

var http = require('http');

var server = http.createServer(function(req, res) {
    var url = 'http://baidu.com';
    var body = '點擊<a href="' + url + '" target="_blank">百度</a>';

    // https://baike.baidu.com/item/ContentType/1938445?fr=aladdin
    res.setHeader('content-type', 'text/html;charset=utf-8');

    // http://nodejs.cn/api/buffer.html#buffer_class_method_buffer_bytelength_string_encoding
    res.setHeader('content-length', Buffer.byteLength(body, 'utf-8'));

    res.end(body);
})

// nodemon to watch
server.listen(3000);

content-type 指定返回內容類型,content-length 指定返回字節長度,可以提供傳輸效率。你們也能夠將text/html改爲text/plain,也能夠將 Buffer.byteLength(body, 'utf-8') 改爲 body.length 看下效果,想一想爲何不對,書中都有講。github

Connect

它引入中間件概念,並封裝了一些經常使用的中間件,方便你們可以更方便搭建服務。express

var http = require('http');

var connect = require('connect'),
    morgan = require('morgan');

var app = connect();

// logger
app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));

// respond to all requests
app.use(function(req, res){
  res.end('Hello from Connect!\n');
});

//create node.js http server and listen on port
http.createServer(app).listen(3000);

morgan 用來記錄日誌,代碼看起來很是清爽。後端

Express

var express = require('express');
var app = express(),
    user = express();

user.get('/show/:id', function(req, res) {
    res.end('get user detail');
})

user.get('/list', function(req, res) {
    res.end('get user list');
})

app.use('/user', user);

app.listen(3000);

api

var express = require('express');
var app = express(),
    user = express();

user.get('/user', function(req, res) {
    res.end('user page');
})

// 這裏直接寫路由應該不常見
app.get('/home', function(req, res) {
    res.end('home page');
})

app.use(user);

app.listen(3000);

footer

以上內容介紹瞭如何創建server 和 使用中間件來開發功能。 下一章待續....架構

參考

相關文章
相關標籤/搜索