Ques.find({'author': 'admin'})
.select('star')
.exec((err, stars) => {
if (err) next(err)
console.log(stars)
});
这样直接写能够获取到author为admin的数据。(ajax的状态是cancel, 但是数据库是操作到了, 把timeout设置长一点, 还是cancel)
但是换做ajax的数据时, 始终不行
router.post('/star', (req, res) => {
let authors = req.body.author;
console.log("服务器收到一个Ajax请求,信息为:", authors);
console.log(typeof(authors)) // string
let auth = authors
console.log(auth) // admin
Ques.find({'author': auth})
.select('star')
.exec((err, stars) => {
if (err) next(err)
console.log(stars)
});
});
不显示数据, 说明是没有找到这个用户(ajax的状态是 failed)
我又这样试了试
let auth = 'admin'
Ques.find({'author': auth})
.select('star')
.exec((err, stars) => {
if (err) next(err)
console.log(stars)
});
这样也是可以的
ajax请求
var author = 'XXXX' // 动态获取的
$.ajax({
data: {author: author},
url: ' /star',
dataType: 'json',
timeout: 2000,
type: 'POST',
success: function(data){
console.log(data);
}
});
问题解决了吗?看了半天没发现问题@@
From Noder
@zhangzeyang 没解决, 反正从ajax那边获取的数据, 当做查询条件 就不行, 尽管使用前, console出来的 是自己想查询的字符串
debug一下看一看,看是不是异步导致的问题
From Noder
@zhangzeyang 我把ajax的写法也添加到问题里面了
VSCode,调试,打一下断点看看
你是不是
router.post('/star', (req, res) => {
let authors = req.body.author;
console.log("服务器收到一个Ajax请求,信息为:", authors);
console.log(typeof(authors)) // string
let auth = authors
console.log(auth) // admin
Ques.find({'author': auth})
.select('star')
.exec((err, stars) => {
if (err) next(err)
console.log(stars)
//todo res.json()
});
});
```
没有返回响应吧 res.json()这样子的
router.post('/star', (req, res) => {
let authors = req.body.author;
console.log("服务器收到一个Ajax请求,信息为:", authors);
res.json(['success', "服务器收到一个Ajax 请求,信息为:", authors]);
});
![MC_QDZML7XF862~PVB2)H0.png
@zxj963577494 不怎么会调试node,
router.post('/star', (req, res) => {
let authors = req.body.author;
console.log("服务器收到一个Ajax请求,信息为:", authors);
console.log(typeof(authors)) // string
let auth = authors
console.log(auth) // admin
Ques.find({'author': auth})
.select('star')
.exec((err, stars) => {
if (err) next(err)
console.log(stars)
//todo res.json()
});
});
你这段代码没有返回响应吧
@jiangli373 不是很懂
router.post('/star', (req, res) => {
let authors = req.body.author;
console.log("服务器收到一个Ajax请求,信息为:", authors);
console.log(typeof(authors)) // string
let auth = authors
console.log(auth) // admin
Ques.find({'author': auth})
.select('star')
.exec((err, stars) => {
if (err) next(err)
console.log(stars)
**`res.json(stars)**`****
});
});
console.log(stars)后面加一个res.json(stars)
@jiangli373 报错,Cannot read property ‘star’ of null
@WUSO01 是res.json(stars) stars
不是 star
router.post('/star', (req, res) => {
let authors = req.body.author; // admin
Ques.find({'author': authors})
.select('star')
.exec((err, stars) => {
if (err) next(err)
res.json(stars)
});
});
状态200, 返回null
@jiangli373 router.post(’/star’, (req, res) => { Ques.find({‘author’: ‘admin’}) .select(‘star’) .exec((err, stars) => { if (err) next(err) res.json(stars) }); }); 写固定的是有返回值
@WUSO01 这问题好奇怪 你贴出来的代码看以来应该是没有问题的
你这样一下呢 auth = auth.toString();