如何修复JS中的'xyz.push(a)不是函数'错误

时间:2019-05-06 23:06:38

标签: javascript arrays node.js postman

我是RESTful API世界的新手。因此,我正在学习不使用任何数据库的情况下使用它。作为练习,我想构建2个端点

  • POST身份验证/注册
  • POST身份验证/登录 当我尝试使用Postman测试注册端点时,出现一些错误和意外行为。 我的文件结构如下: 数据/用户

    让用户= [

    { 编号:1 电子邮件:“ user@gmail.com”, 名称:“您”, 密码:“ Pat123” }

    ];

module.export =用户;

routes / signUp.routes.js

localStorage

我的根目录上也有配置文件,可在端口3000上运行服务器。

如果我在邮递员上运行以上代码,即使一切都可以通过该测试,我也只能从第一个if语句获得结果。我不知道为什么。 如果我注释该块(如果存在),则会收到一条错误消息,指出usr.push()不是函数。 我花了几个小时试图解决,但徒劳无功。我的代码有问题吗?

编辑

我更改了文件结构,没有得到usr.push()不再是函数错误。但是如果不是这样的话,该集团仍然不能很好地运作。即使我发送了所有必填字段或我发送了其中一个字段,该请求也只响应了第一个块。

1 个答案:

答案 0 :(得分:0)

默认情况下,req.bodyundefined,并且在使用主体解析中间件(例如,主体解析器和multer)时填充。 Reference

通过运行命令body-parser

安装npm install --save body-parser

然后,在您的代码中

var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

现在,您应该可以访问请求正文了。 不要忘记将请求标头content-type设置为application/json