【问题标题】:MongoDB // nodemon crash when i POST in postmanMongoDB // 当我在邮递员中发布时,nodemon 崩溃
【发布时间】:2020-09-02 22:32:49
【问题描述】:

当我运行 nodemon file.js 时,它会显示这个(cmd):

(node:23816) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:23816) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

And then when i POST in Postman show this (cmd) : 
events.js:287
      throw er; // Unhandled 'error' event
      ^

ReferenceError: response is not defined
    at D:\Desktop\swag-shop-api\server.js:21:7
    at D:\Desktop\swag-shop-api\node_modules\mongoose\lib\model.js:4889:16
    at D:\Desktop\swag-shop-api\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
    at D:\Desktop\swag-shop-api\node_modules\mongoose\lib\model.js:4912:21
    at model.<anonymous> (D:\Desktop\swag-shop-api\node_modules\mongoose\lib\model.js:493:7)
    at D:\Desktop\swag-shop-api\node_modules\kareem\index.js:315:21
    at next (D:\Desktop\swag-shop-api\node_modules\kareem\index.js:209:27)
    at D:\Desktop\swag-shop-api\node_modules\kareem\index.js:182:9
    at D:\Desktop\swag-shop-api\node_modules\kareem\index.js:507:38
    at processTicksAndRejections (internal/process/task_queues.js:79:11)
Emitted 'error' event on Function instance at:
    at D:\Desktop\swag-shop-api\node_modules\mongoose\lib\model.js:4891:13
    at D:\Desktop\swag-shop-api\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
    [... lines matching original stack trace ...]
    at processTicksAndRejections (internal/process/task_queues.js:79:11)
[nodemon] app crashed - waiting for file changes before starting...

但是当我执行 db.products.find({}) 时,它会显示我从邮递员中发布的所有内容

请有人帮帮我...

server.js file:

【问题讨论】:

  • 您也可以显示您的 events.js 文件吗?似乎它导致了错误。
  • 上面的两个警告可以通过稍微修改你的连接方法来消除:mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true })
  • 你能显示你server.js的代码吗?它说response 未在该文件中定义。
  • 欢迎来到 Stackoverflow 社区,这里有一些提示,可以在询问时获得更好的体验。 meta.stackoverflow.com/questions/285551/…
  • @VedantBang 在哪里修改此“mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true })”(我是 MongoDB 新手)

标签: javascript node.js mongodb postman nodemon


【解决方案1】:

如果您需要一些指导来在 mongodb 的集合中列出您的文档,只需使用以下代码作为起点:

在第 13 行,您必须将代码更改为:

app.post("/product", function(request, response) {

参数名称必须是response

【讨论】:

  • 谢谢你,但现在当我运行“nodemon server.js”时,nodemon 应用程序在 cmd 中崩溃了:(顺便说一句,我是 Mongodb 和 stackoverflow 的新手......
  • SyntaxError: Unexpected token ')' at wrapSafe (internal/modules/cjs/loader.js:1070:16) at Module._compile (internal/modules/cjs/loader.js:1120:27 ) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10) 在 Module.load (internal/modules/cjs/loader.js:1000:32) 在 Function.Module._load (internal/modules/cjs/loader.js:899:14) 在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) 在 internal/main/run_main_module.js:18:47 [nodemon ] 应用程序崩溃 - 开始前等待文件更改...
  • 我发现了问题,但知道显示:(node:18836) DeprecationWarning: 当前 URL 字符串解析器已弃用,将在未来版本中删除。要使用新的解析器,请将选项 { useNewUrlParser: true } 传递给 MongoClient.connect。 (node:18836) DeprecationWarning:当前的服务器发现和监控引擎已被弃用,并将在未来的版本中删除。要使用新的服务器发现和监控引擎,请将选项 { useUnifiedTopology: true } 传递给 MongoClient 构造函数。 Swag Shop API 在端口 3000 上运行...
  • 是的,这已经在原帖中评论过了。有一个解决方案的评论。
  • 我在哪里必须这样做? CMD // mongo and than > mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }) ?
【解决方案2】:

解决方案:

第 5 行:var db = mongoose.connect("mongodb://localhost/swag-shop", { useNewUrlParser: true, 使用统一拓扑:真, });

第 16 行:app.post("/product", function (request, response) {

致谢:@Danizavts 和 @VedantBang。

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2019-05-27
    • 2022-01-23
    • 2011-10-03
    • 2016-02-03
    • 2020-02-18
    相关资源
    最近更新 更多