nodejs创建web服务器和Tcp服务器

2020-01-06  本文已影响0人  来了啊小老弟

使用http模块创建Web服务器

Web服务器的功能:

常见的Web服务器架构:

常见请求种类:

Node.js的Web服务器:

不依赖其他特定的Web服务器软件(如Apache、Nginx、IIS......)

使用Express创建Web服务器

简单的Express服务器:

var express = require('express');
var morgan = require('morgan'); //打印日志
var app = express();

// path方法  比较简单
app.use(express.static('./public'))
app.use(morgan())
app.get('/',(req,res,next)=>{
  res.end('hello');
  next(); // 进行下一步,打印日志 
})

//Router方法 适合某一个模块下的多个子路由
var Router = express.Router();
Router.get('/add',(req,res)=>{
  res.end('add')
})
Router.get('/list',(req,res)=>{
  res.end('list')
})
app.use('/post', Router)

//route方法  适合restful API
app.route('/article')
  .get((req,res)=>{
    res.end('/article get')
  })
  .post((req,res)=>{
    res.end('/article post')
  })

app.param('newsId', (req, res, next, newsId)=>{
  req.newsId = newsId;
  next();
})  

app.get('/news/:newsId', (req, res)=>{
  req.end('newsId:' + req.newsId);
})    

app.listen(18001, function afterLister(){
  console.log('服务再次启动')
})

创建TCP服务器

var net = require('net')

const PORT = 18001;
const HOST = '127.0.0.1';

var clientServer = function(socket){
  console.log('comeone connected')
  socket.on('data',(data)=>{
    console.log(socket.remoteAddress, socket.remotePort, data.toString())
    socket.write('服务端write')
  })

  socket.on('close',()=>{
    console.log(socket.remoteAddress, socket.remotePort,'disconnected')
  })
}
var app = net.createServer(clientServer)

app.listen(PORT,HOST,'',function(){
  console.log('监听启动:'+HOST+':'+PORT)
  console.log('监听成功')
})

tcpClient.js:

var net = require('net')

const PORT = 18001;
const HOST = '127.0.0.1';

var tcpClient = net.Socket();
tcpClient.connect(PORT, HOST, function(){
  console.log('客户端发送信息成功打印')
  tcpClient.write('客户端发送信息成功')
});

tcpClient.on('data',(data)=>{
  console.log( data.toString())
})

上一篇 下一篇

猜你喜欢

热点阅读