草庐IT

node.js - 使用 winston-mongodb、express-winston 和 winston 进行日志记录

我正在使用winston、expressWinston、winston-mongoDB来管理我的NodeJs应用程序中的日志。同时使用winston-mongodbtransport和express-winston;我可以按以下格式将日志存储到我的mongoDB集合中。(元:真){"_id":ObjectId("5a124f9781d911337ebeb98d"),"timestamp":ISODate("2017-11-20T03:44:23.336Z"),"level":"info","message":"GET/stylesheets/bootstrap.css3042ms","

node.js - Mongoose 在没有模型的情况下填充嵌套模式

我试图在不为子模式创建模型的情况下填充嵌套模式,但没有成功。我有一个“问题”模型,它由2个模式(问题、选项)创建constOption=newmongoose.Schema({value:{type:String,required:true}})constQuestion=newmongoose.Schema({content:{type:String,required:true},options:[Option]})module.exports=mongoose.model('Question',Question)我有一个“评论”模型constReview=newmongoose.S

mongodb - everyauth:根据数据库检查 github 身份验证

我是node.js的新手,我在使用everyAuth模块时遇到了问题。我的问题是,我正在尝试创建一个应用程序,让用户通过githuboauth登录并检查用户是否在数据库中列入白名单。我想停止身份验证返回true,直到我检查用户是否在白名单中。我已经尝试了几种方法来做到这一点,但都无济于事。任何人都可以阐明吗?调用github方法everyauth.github.appId(conf.github.appId).appSecret(conf.github.appSecret).redirectPath('/').findOrCreateUser(sess,accessToken,acce

node.js - 在集合 : Session 上设置 TTL 索引时出错

我知道有很多关于这个问题的话题,但其中任何一个都解决了我的问题。我实际上正在尝试在Heroku上部署我的项目,这对我来说是新事物。我的项目是一个基于ExpressAPI的node.js连接到MongoDB数据库。当我使用我的数据库在本地启动它时(没有登录名/密码)我没有这个错误,但是当我将它连接到heroku数据库时我得到一个:Error:ErrorsettingTTLindexoncollection:Session我的包.json"dependencies":{"express":"3.0.6","mongodb":"1.3.19","mongoskin":"0.5.0","MD5

node.js - 在带有路由的 Express 应用程序中重用 MongoClient

我想在我的route重用MongoClient连接(我已经看到有使用旧连接的方法,但是我想使用MongoClient并且我也想拥有一个单独的数据库配置文件app.js(片段)varroute=require('route');app.get("/",route.test);数据库配置文件varMongoClient=require('mongodb').MongoClient;varmongourl='mongodb://localhost/test';MongoClient.connect(mongourl,function(err,db){if(err)console.log('E

javascript - Node.js 和 mongodb TypeError : undefined is not a function

我是node.js和mongodb的新手。我正在将express和jade用于我正在编写的测试应用程序。我已经配置了mongodb和node.js,但是当我尝试从数据库中检索数据时,出现以下错误:TypeError:undefinedisnotafunction/Users/apple/Documents/Nodejs/NODE/express_example/node_modules/mongodb/lib/mongodb/connection/base.js:242throwmessage;^TypeError:undefinedisnotafunctionatcommandHan

node.js - 在 Express 应用程序的默认 connect.sid 浏览器 cookie 上设置域

好的,我有一个基于子域运行的express/mongo应用程序。我读过,通过将cookie的域设置为.mydomain.com,可以使sessionIDcookie可用于子域这应该可行,但我不知道如何将该属性放入默认浏览器cookie(connect.sid)。我正在使用express-session进行session,使用connect-mongo来保持session,当然还有cookie-parser来使所有这些工作正常进行。似乎有几个不同的地方我可以设置这个属性,但它们似乎都不会对我在Chrome的开发工具中看到的实际cookie产生任何影响。:(这是应用程序配置block:ap

node.js - Mongoose / express : average of subdocuments

我有以下型号:产品:varProductSchema=newSchema({name:String,comments:[{type:Schema.Types.ObjectId,ref:'Comment'}],_user:{type:Schema.Types.ObjectId,ref:'User'}});评论:varCommentSchema=newSchema({text:String,rating:Number,_product:{type:Schema.Types.ObjectId,ref:'Product'}});我目前所做的是检索所有产品及其用户:router.get('/',

node.js - 单元/集成测试 Express REST API、mongoose、mocha、sinon、chai、supertest

我对使用Mongoose对ExpressRESTAPI进行单元测试感到很困惑。我听说过supertest、sinon、chai和mocha。我想编写测试:1)测试API接口(interface):创建一个super测试服务器并向其发出请求(例如GET/users、POST/users)并检查它是否调用了正确的路由。2)测试Mongoose查询:当路由被调用时,我想检查是否调用了正确的mongoose函数(find,findById)并且它返回了正确的数据(假数据),比如:当调用User.findId时,返回假用户(在beforeEach中定义的数据)。这是sinonstub的用途吗?3

node.js - 在生产中使用 GridFS 在 Node 中下载文件

我有一个express应用程序,当我在本地运行时它可以工作。问题是在使用GridFS下载保存在mongoDB中的文件时。在本地运行它时(我只是执行./bin/www并转到localhost:3000),我可以下载该文件。但是当我远程运行它时,我下载了一个html文件。这是处理响应的路由:router.get('/getfile',function(req,res){if(req.isAuthenticated()){vargfs=Grid(mongoose.connection,mongoose.mongo);varid=req.query.id;gfs.exist({_id:id},