node.js创建服务,发送请求后返回数据

Posted on 2020-03-29 20:44  猫头唔食鱼  阅读(1014)  评论(0编辑  收藏  举报

1.引入http模块

var http = require('http');

2.创建服务

var server = http.createServer();

3.绑定request事件

server.on('request',function(req,res){
    // req.url 是访问的地址
    if(req.url === '/login'){
        // req.write()在页面上返回数据
        res.write('login')
        // 返回数据后使用end,不然不能返回数据
        res.end()
    }else{
        res.write('no login')
        res.end()
    }
})

4.监听端口

server.listen(3000,function(){
    console.log('启动成功,可通过http://localhost:3000 访问');
})

 

在浏览器输入:http://localhost:3000/login

页面上显示内容

 

返回内容也可以直接这么写,直接返回end里面的内容

 if(req.url === '/login'){
        res.end('is login') // 调用end方法并返回内容
    }

 需要注意的问题:

res.end() 只能返回字符串或者二进制数据

 if(req.url === '/person'){
        var person = [
            {name:'zs',age:12},
            {name:'ls',age:13},
        ]
        // res.end()只能传入字符串或者二进制数据, 不能传入数字,布尔值,所以需要调用下JSON.stringify()
        res.end(JSON.stringify(person)) // 直接返回内容并调用end方法
    }

 

 

 完整代码:

// 引入http模块
var http = require('http');
// 创建服务 createServer()
var server = http.createServer();
// on绑定request事件
server.on('request',function(req,res){
    // req.url 是访问的地址
    if(req.url === '/login'){
        // req.write()在页面上返回数据
        res.write('login')
        // 返回数据后使用end,不然不能返回数据
        res.end()
    }else{
        res.write('no login')
        res.end()
    }
})
// 监听端口
server.listen(3000,function(){
    console.log('启动成功,可通过http://localhost:3000 访问');
})

 

 

======================update in 2021.6.3 ====================

上面写那么多,还不如写成下面那样方便

let http = require('http')
http.createServer((req,res) => {
    if(req.url === '/login'){
        res.end('login')
    }else if(req.url === '/person'){
        let person = [{name: 'John',age:12}]
        res.end(JSON.stringify(person))
    }else{
        res.end('no login')
    }
}).listen(3002,()=>{
    console.log('监听3002');
})