MST

星途 面试题库

面试题:Node.js前后端分离架构下如何实现简单的数据交互

在Node.js前后端分离架构中,假设前端使用fetch发送一个POST请求到后端,后端需接收请求中的JSON数据并进行简单处理后返回响应。请描述后端Node.js实现此功能的主要步骤,并给出关键代码示例(不要求完整项目代码,核心处理部分即可)。
46.5万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
  1. 主要步骤
    • 引入必要模块:在Node.js中,使用http模块创建HTTP服务器来处理请求,url模块用于解析URL,querystring模块(或JSON对象)用于处理请求体数据。
    • 创建HTTP服务器:通过http.createServer方法创建服务器实例。
    • 监听请求事件:服务器实例监听request事件,在事件处理函数中处理接收到的请求。
    • 解析请求:获取请求方法和URL,检查是否是POST请求。如果是POST请求,收集请求体数据。
    • 处理请求体数据:将收集到的请求体数据解析为JSON格式,进行简单处理。
    • 发送响应:根据处理结果构造响应,设置响应头和状态码,将处理后的数据作为响应体发送回前端。
  2. 关键代码示例
const http = require('http');
const url = require('url');
const querystring = require('querystring');

const server = http.createServer((req, res) => {
    const { method, url: requestUrl } = req;
    const parsedUrl = url.parse(requestUrl);

    if (method === 'POST' && parsedUrl.pathname === '/your - api - endpoint') {
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString();
        });
        req.on('end', () => {
            try {
                const data = JSON.parse(body);
                // 简单处理数据,例如添加一个属性
                data.processed = 'This data has been processed';
                res.writeHead(200, { 'Content - Type': 'application/json' });
                res.end(JSON.stringify(data));
            } catch (error) {
                res.writeHead(400, { 'Content - Type': 'application/json' });
                res.end(JSON.stringify({ error: 'Invalid JSON data' }));
            }
        });
    } else {
        res.writeHead(404);
        res.end();
    }
});

const port = 3000;
server.listen(port, () => {
    console.log(`Server running on port ${port}`);
});