老师,有疑问

来源:5-4 处理http请求的综合示例

慕设计7925147

2019-11-02

const http = require(‘http’);
const querystring = require(‘querystring’);

const server = http.createServer((req,res)=>{
// API信息:
const method = req.method; // 请求信息
const url = req.url; // 网页地址信息
const path = url.split(’?’)[0]; // 网页地址栏前面的信息
const query = querystring.parse(url.split(’?’)[1]); // 网页地址栏后面的信息

// 设置格式返回为JSON,用于客户端解析,类似之前end返回HTML格式,text/html:
res.setHeader('Content-type','application/json');

// 返回的数据:
const resData = {
    method,
    url,
    path,
    query
}

// 返回之前设置JSON格式的字符串:
if(method === 'GET') {    // GET格式
    res.end(JSON.stringify(resData));   // 返回为字符串格式
}
if(method === 'POST') {
    let postData = '';
    req.on('data',chunk => {
        postData += chunk.toString();
    })
    req.on('end:',()=> {
        resData.postData = postData;
        // 返回:
        res.end(JSON.stringify(resData));
    })
}

});

server.listen(8000);
console.log(‘请求成功’);

在postman里post请求一直显示Sending request…
上一节课的post没问题,这节课的代码就一直显示Sending request…

写回答

3回答

双越

2019-11-02

end 后面为何要加一个冒号???

2
2
慕容4091060
回复
慕设计7925147
这是个事件名,就像 ‘click’ 事件
2019-11-12
共2条回复

双越

2019-11-02

    req.on('end:',()=> {  // 把这一行的分号,删掉。end 前后也不要有多余的空格。
        resData.postData = postData;
        // 返回:
        res.end(JSON.stringify(resData));
    })


1
0

慕设计7925147

提问者

2019-11-02

我单独写POST就没问题,综合写POST就不行

0
0

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程