为什么会出现“response.status is not function”的错误。节点js

问题描述 投票:0回答:1

我正在用纯 Node js 编写一个查询控制器。为什么控制台会出现“response.status is not function”错误?

const Admins = require('../models/admins')
const Films = require('../models/films')
const Categories = require('../models/categories')

module.exports =  function requestController(request, response){
    if(request.method === 'GET' && request === '/admins/all'){
        Admins.findAll()
        .then(()=>{
            response.status(200).json()
        })
    }else{
        console.log(response)
        response.status(400).json()
    }
}

我尝试更改名称并在控制台中显示响应。响应实际上没有状态功能。

创建服务器并调用主控制器的功能

    const db = require('./base');
    const http = require('http');
    const port = 3500;
    const Sequelize = require('sequelize');
    const requestController = require('./controllers/main-controller');
    
    http.createServer(function(request, response){
        console.clear();
        console.log('=================================');
        console.log('||     SERVER WORKED           ||');
        console.log('=================================');
        requestController(request,response);
    response.end('Server Ready');
    }).listen(port);
javascript node.js backend
1个回答
0
投票

您在本机http中使用表达语法,因此它没有

status
json
函数。 您可以使用
end
writeHead
statusCode
来代替。

参考此DOC

module.exports =  function requestController(request, response){
    if(request.method === 'GET' && request === '/admins/all'){
        Admins.findAll()
        .then(()=>{
            response.writeHead(200,{
                "content-type":"application/json"
            });
            const data = { /** your data */
                user: "test"
            }
            const result = JSON.stringify(data); /** You have to stringify before sent it to response */
            response.end(result)
        })
    }else{
        console.log(response)
        response.statusCode = 400;
        response.end("Something went wrong")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.