2012-08-07 60 views
3

每个人都有美好的一天。我有猫鼬

module.js:437 
    var compiledWrapper = runInThisContext(wrapper, filename, tru 
         ^
SyntaxError: Unexpected token . 
    at Module._compile (module.js:437:25) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at Object.<anonymous> (E:\Dropbox\Dropbox\FCP\server.js 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 

工作一个奇怪的错误我客串是去从

dbQueries.remove({_id: {$in: {req.body.data}}, authorId: req.user._id}, function onRemoveSomething(err){ 
      if(err) { 
       res.json({epicFail: 'ERR_RestrictedAccess'}); 
       return; 
      } 
     }); 

所以,我不知道什么是错的。

回答

23

$in需要一个数组,不是无效格式的JavaScript对象

{_id: {$in: [req.body.data]} 

,或者如果req.body.data已经是一个数组,忽略包装[]

+0

冬青syncasis ......非常感谢 – Roman 2012-08-07 08:00:59

+0

节点的一些重新启动后它正常工作与{_id:{$于:req.body.data} – Roman 2012-08-07 18:40:39

+0

@小宝射线如何当REQ做到这一点。 body.data有一个元素?基本上req.body.data的内容可以是单个元素,或者数组是需求,我使用in运算符。我应该如何处理这种情况? – theChinmay 2015-03-23 16:36:55

1

你必须检查req.body.data是一个数组或没有,看下面的代码 {_id: {$in: _.isArray(req.body.data) ? req.body.data : [req.body.data] } //const _ = require('lodash');

0

根据数据建立您的查询

var match = { 
    authorId: req.user._id 
}; 

if(Array.isArray(data)) { 
    match._id = {$in: data}; 
} else { 
    match._id = data; 
} 

dbQueries.remove(match, function findMyDocs(err, foundDocs) { 

});