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

Posted on   猫头唔食鱼  阅读(1024)  评论(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');
})
复制代码

 

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示