express中数据插入成功之后,如何返回值?
我想在mongoose插入成功后返回一个json,并以res.json(data)的形式发送给前端,但insert()
函数这样写不对?为什么insert.js
var User = require("../mongo/user.js");
function insert(data) {
console.log("传入的data",data)
let result={}
var user = new User({
username : data.username, //用户账号
userpwd: data.psw, //密码
// userage: 37, //年龄
logindate : new Date() //最近登录时间
});
let saveStatue=user.save(function (err, res) {
console.log("userSave")
if (err) {
console.log("Error:" + err);
result={msg:"success"}
//result=res
}
else {
console.log("插入成功")
console.log("Res:" + res);
result={msg:"success"}
//result=res
}
});
console.log("saveStatue",saveStatue)
//
return result // 我想insert这个函数返回一个插入成功或失败的json
}
// insert();
module.exports=insert
app.js
我的insertResult
想得到一个插入成功或失败的json,但是这个执行结果好想是个promise对象
app.get("/wechat/login",function(req,res,next){
console.log(123)
let user=req.query
console.log("带过来的参数",user)
// console.log(insert.toString())
if(user){
res.set({
"Access-Control-Allow-Origin": "*"
,"Access-Control-Allow-Methods": "POST,GET"
,"Access-Control-Allow-Credentials": "true"
});
// let findResult=find(user.username)
// console.log("上面是find结果",findResult)
let insertResult=insert({
username:user.userName,
psw:user.psw
})
console.log('insertResult',insertResult)
res.json({
status:1
})
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
var User = require("../mongo/user.js");
function insert(data, callback) {
// return result // 我想insert这个函数返回一个插入成功或失败的json
}
// insert();
module.exports=insert
app.get("/wechat/login",function(req,res,next){
console.log(123)
let user=req.query
console.log("带过来的参数",user)
// console.log(insert.toString())
if(user){
let insertResult=insert({
}
});
这样就可以实现你想要的结果了
你的问题原因在save调用传入的function是异步的,所以你的result还没有被赋值就返回了,你需要将res返回数据的语句放入save的函数里面,这是一个相关例子,原来写的: