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 和 使用中间件来开发功能。 下一章待续....架构

参考

相关文章
相关标签/搜索