草庐IT

Mongoose-Express-Mongodb

全部标签

javascript - Express - 在中间件函数之间传递数据的更好模式

我刚刚在Express中提出了这个问题,我对StackOverflow对此的看法很感兴趣:https://github.com/strongloop/express/issues/2831我的问题是为什么Express选择不允许开发人员在中间件函数之间直接传递数据,并且基本上强制您将临时数据分配给请求对象,我一直认为这是一个非常尴尬的事情作业。更具体地说:在中间件函数之间传递数据通常涉及这样做req.specialData={}next();但是,如果可能的话,它可能会更容易且性能更高(!)next(null,data);或functionmySpecialMiddleWare(req

javascript - 如何访问 GraphQL 解析器中的请求对象(使用 Apollo-Server-Express)

我有一个使用GraphQL的标准快速服务器constserver=express();server.use('/graphql',bodyParser.json(),graphqlExpress({schema}));问题是:如何访问解析器中的request对象?我想在一些特定的查询中检查JWT这是导入的模式:consttypeDefs=`typeUser{id:String,name:String,role:Int}typeQuery{user(id:String):User,users:[User]}`;constresolvers={Query:{user:(_,args,con

javascript - 修改 Mongoose 对象文字结果不起作用

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whycan’tyoumodifythedatareturnedbyaMongooseQuery(ex:findById)首先,我对mongoDB进行查询,获得了所有正确的结果,但只有对对象文字的小修改不起作用。我正在尝试做的是为评论添加新字段。我尝试使用DBref方法,但它不起作用,所以我现在进行了2次查询。varquery=Rss.findOne({_id:itemId});query.exec(function(err,feed){if(!err&&feed.comments){console.log(f

javascript - 无法在 Express 中呈现 swig 模板

所以我正在尝试使用consolidate.js渲染swigtemplates使用express,但是当我尝试从另一个模板“扩展”一个模板时出现以下错误:Error:ENOENT,nosuchfileordirectory'//one.html在我的app.js文件中,我将swig设置为我的渲染引擎(仅包括相关代码):varconsolidate=require('consolidate');app.set('viewengine','html');app.set('views',__dirname+'/views');app.engine('.html',consolidate.swi

javascript - 如何将 --harmony Node 标志添加到 grunt-express

我正在使用grunt-express进行本地开发。这是我的GruntFile.jsvarpath=require('path');module.exports=function(grunt){grunt.initConfig({pkg:grunt.file.readJSON('package.json'),uglify:{options:{banner:'/*!*/\n'}},express:{server:{options:{debug:true,server:path.resolve('app.js')}}},env:{options:{},dev:{NODE_ENV:'devel

javascript - Nodejs Mongoose 未定义的保存模型不是函数

我使用NodejsExpress路由和Mongoose来保存数据。我毫无问题地完成了核心路由CRUD操作。但是,当我尝试对模型的一个字段执行一些操作,然后尝试使用model.save保存模型时,它说.save()方法:“undefinedisnotafunction”所以,这是代码。片段编号(1)工作得很好:router.put('/:myId',function(req,res,next){varourUpdateData=req.body;Model.findOne({myId:req.params.myId.toString()},function(err,foundModel)

javascript - Express.js,意外的 token <

我有一个简单的快速服务器,看起来像这样:Epxress应用:varexpress=require('express');varcompression=require('compression');varpath=require('path');varcors=require('cors');varrouter=express.Router();varapp=express();app.use('/bundle',express.static(path.join(__dirname,'/bundle')));app.enable('trustproxy');app.use(compres

javascript - Node.js Express - app.all ("*", func) 在访问根域时不会被调用

我正在尝试设置一个在每次页面加载时调用的全局函数,无论它在我的网站中的位置如何。根据Express的API,我使用了app.all("*",doSomething);在每次加载页面时调用函数doSomething,但它并不完全有效。该函数在每次页面加载时触发,除了基本域的页面加载(例如http://domain.com/pageA将调用该函数,但http://domain.com不会)。有谁知道我做错了什么?谢谢! 最佳答案 我打赌你放了app.get('/',fn)以上app.all("*",doSomething);请记住,Ex

javascript - Node/Express 生成一次性路由/链接/下载?

我将如何在nodeJS或Express中创建一次性下载链接?我正在尝试找到实现此目的的最简单方法。到目前为止,我的想法是:使用fs流读取然后删除文件或者以某种方式生成一个链接/路由,一旦单击下载按钮,该链接/路由就会被删除这些实现是否可行?有没有更简单的方法?任何帮助或示例代码将不胜感激!-谢谢 最佳答案 检查这个简单的实现:您将下载信息存储在一个文件中。文件名是下载sessionID。文件内容为要下载文件的真实路径。使用这三个函数来管理下载session的生命周期:varfs=require('fs');varcrypto=req

javascript - express.js 中的常用函数放在哪里?

我想知道应该将通用函数放在express结构中的什么位置,以便在不同路由之间共享。有什么“最佳实践”吗?文档中没有提及它。 最佳答案 它们应该放在您从每个路由需要的包含中。通用.jsfunctionCommon(){}Common.prototype.method1=function(){}Common.prototype.method2=function(){}module.exports=newCommon();路由.jsvarcommon=require('./common');common.method1();common.