postman模拟node数据post提交不到mongoodb集群远程数据库怎么回事?
发布于 4 年前 作者 gaoxizhong 4864 次浏览 来自 问答

恳求大神帮忙解决下!!! 用的express框架,mongodb的免费集群数据库,显示已经连接成功, 1573387792(1).png 1573387862(1).png 1573387895(1).png 我在路由api.js里用post提交数据 1573388697(1).png 然后我用postman模拟数据提交,但是一直在加载中就是提交不上去是怎么回事啊? 1573388439.png 1573388480(1).png 终端能打印出来数据,但是postman里提交不了.集群数据库里也没有数据 1573388512.png

16 回复

你这是哪里学的Node,还在用这么古老的.then().then() 首先,你的mongodb是直接用的mongodb模块,而你保存数据的方式又像是用的mongose,看不到你new User()用的User是怎么写的 然后两个不好的地方,不要在这些地方偷懒:

  1. 所有的require()应该放到文件顶部,这样能一眼就知道用到了些什么东西,有的人喜欢用require()来动态加载东西,那样做意味着别人看代码的时候至少得在脑子里跑一遍代码才能知道你用了什么
  2. request.post(’/reg’),’/reg’应该写完整的路径,不能省略前面的,应该写成’/api/users/reg’,写完整路径有利于在大项目中通过全局搜索快速定位接口的位置

额,我是个前端,想自己写点后台数据然后写自己的前端项目…也就是说用了mongoodb模块就不需要mongoose了?我是看的网上的视频教程跟着做,弄了半天都出不来…我的models下User.js捕获.PNG

return newUser.save() document的save()方法 返回的是promise, 你还没有处理这个promise,就直接返回回去了. 看看是不是这里出了问题

@FullSD 应该怎么写呢?

@zengming00 额,我是个前端,想自己写点后台数据然后写自己的前端项目…也就是说用了mongoodb模块就不需要mongoose了?我是看的网上的视频教程跟着做,弄了半天都出不来…我的models下User.js//
我该怎么修改呢?

@gaoxizhong mongoose是基于mongoodb模块,你可以同时使用,但是你代码中的mongoose并没有连接数据库,因此你的数据不会存入数据库

@gaoxizhong 仔细的看了一下你的代码,我上面的理解有问题, save()产生的promise被后面的then执行了, 估计就是你连数据库的时候错了

@zengming00 我又改了改 报错:Error [ValidationError]: users validation failed: name: Path name is required. 1573562223(1).png 1573562250(1).png 1573562285(1).png

@FullSD 我改了用mongoose.connect连接远程数据库了还是报错:Error [ValidationError]: users validation failed: name: Path name is required. 1573562223(1).png 1573562250(1).png 1573562285(1).png

哥们,放弃吧,这么个问题三天你都解决不了,Node写后端不适合你 你可以试试我这个,也是js写服务端:https://github.com/zengming00/go-server-js/releases 下载go-server-js-windows-x86.zip,解压运行go-server-js.exe,然后打开浏览器 http://localhost:8080/ ,一个服务器就跑起来了,相信代码你一定看得懂

原因很明显了,你的postman没有传入name这个参数而是传了username,不符合user.js里面的定义,所以报错了

看起来像是连接的问题,你用的mongoose模块就用mongoose的connect,这种情况应该会报超时错误的。还有一个地方,用promise没啥问题,写代码还是有点要求,起码加上eslintimage.png

@youth7 save不进会有错误打印的

@zengming00 额 回头研究研究这个

@fightAndLearn 额 好的 谢谢

@youth7 没检查postman 哈哈 成功了可以传进数据了

回到顶部