Tag: 表示

NodeJS Expressdynamic文件下载

我希望用户能够查询数据库并下载格式良好的txt文件及其结果。 这样做的最好方法是什么? 现在我写入一个临时文件,让用户下载它,然后每周删除一次累积的文件。 有没有NodeJS这样做?

如何填充评论计数到一个项目列表?

我有两个模型在我的应用程序:项目和评论。 一个Item可以有很多注释,而一个Comment实例包含对一个Item实例的引用,并带有键“comment”来跟踪关系。 现在,当用户请求特定的URL时,我必须发送所有项目的JSON列表以及它们的评论计数。 function(req, res){ return Item.find() .exec(function(err, items) { return res.send(items); }); }; 我不知道如何“填充”评论计数的项目。 这似乎是一个普遍的问题,我倾向于认为应该有一个更好的方式来做这个工作比蛮力。 所以请分享你的想法。 你如何“填充”评论计数的项目?

运行客户端时(在浏览器中)将助手附加到Jade

我用mongo db制作了一个由js(Express)提供的单页面应用程序。 我已经使用翡翠模板,并在浏览器中呈现一些模板。 模板渲染良好,除了我无法锻炼如何添加助手。 特别是下一个。 我build立了一个模板/ get /的路线,如下所示: var fs = require('fs'); var jade = require('jade'); exports.get = function(req, res){ fs.readFile('views/partials/listing_snippet.jade', {encoding: 'utf-8'}, function (err, data) { if (err) throw err; console.log(data); t = jade.compile(data, {client: true, compileDebug: false}); res.send('var template = {listing_snippet: ' + t.toString() + '}'); }); } 然后我把这个和jades的'runtime.js'作为脚本放在我的页面顶部。 该模板通过调用template.listing_snippet({locals: foo});渲染罚款template.listing_snippet({locals: foo}); 但我不能让i18next的帮手工作。 […]

connect-redis和快速会话

在node / express方面有点新鲜,我一直在为自己做一个项目,以确保我的基础已经完成。 目前,我真的专注于会议。 我有一个通过redis设置的后端会话存储,并使用connect-redis来简化应用程序中的内容。 我一直玩的cookie maxAge和connect-redis TTL并有一个(希望简单)的问题。 设置connect-redis TTL选项和 cookie maxAge还是maxAge是最好的做法? 强制性代码: app.use(express.session({ secret:'stackoverflowrulz', store: new RedisStore({ host: 'example.com', port: 6379, client: redis, ttl: 3600000 }), cookie: { maxAge: 3600000 } })); 这似乎是maxAge cookie设置“stream通”基于我在附近的第118行看到的redis源代码,但我不是一个专家编码器,我无法find书面文件来确认我认为我正在阅读。

expression式抛出“对象不是一个函数”错误与最新版本的Express和Node.js?

运行以下节点会引发“对象不是函数”错误,具体引用“express()”。 var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('hello world'); }); app.listen(3000); 我以为我只是没有安装它(使用expressionscriptName,然后npm安装),但这样做只是创build了默认的app.js文件,并没有包括我的代码。 我只是不了解这里的工作stream程? 我错过了什么? node –version v0.10.10 express –version 3.2.6

使用Express JS级联式渲染

通过运行在节点服务器上的快速应用程序,我将如何从完整pathrecursionsearch渲染文件,直到所提供的URL的开头。 例如,如果有人用www.somewebsite.com/shop/products/product打我的服务器,渲染引擎会首先检查shop / products / product /中是否有index.jade文件。 如果没有find,它会检查商店/产品/,然后购物/。 var express = require('express'); var app = express(); app.get('/*', function(req, res){ res.render(req.path + '/index.jade', function(err, html){ // some loopback code which alters the path and recalls the render method }) }); 问题是响应对象没有传递给渲染callback,所以我无法回想回应的渲染。 我正在寻找创build一个循环,因为URLpath可能是任何数量的目录深,所以我不能只是假设我只需要级联一个明确的次数。 任何人都看到了这个方法?

用NodeJS上传AppFog上的文件

我使用Express创build了一个NodeJS应用程序,我在AppFog上上传了我的应用程序,唯一的问题是我的应用程序中有一个file upload表单,用于上传应用程序的一些照片(用于“创build”表格)。 它在当地工作,但在AppFog上它不工作,也许AppFoglocking了上传文件…我不知道我应该怎么做…我的CHMOD目录是“0777”。 (对不起,我来自欧洲) 我的看法: form.admin(action='/creations/save', method='post', enctype='multipart/form-data') div label(for='title') Title input(type='text', name='title', placeholder='Title…') div label(for='thumbnail') Thumbnail input(type='file', name='thumbnail') div label(for='moodboard') Moodboard input(type='file', name='moodboard') input(type='submit', value='Save') input(type='reset', value='Cancel') 我的控制器: var saveFile = function(file, folder){ var file_tmp = file.path; var file_name = file.name; var file_type = file.type; var file = './uploads/'+folder+'/'+file_name; console.log(file); fs.rename(file_tmp, file, function(err){ if( […]

Nodejs + Express – 不能调用未定义的方法“json”

我正在与Express,Hoganjs,Nodejs合作。 下面的代码不断返回“500 TypeError:不能调用未定义的方法'json' 我认为我打电话给getUsers是有问题的,但是我太多了。 我所提到的教程或论坛都没有提供帮助。 exports.admin = function(req, res){ getUsers(function(error, res){ res.render('admin', { title: 'Admin', userlist: res }); }); }; function getUsers(req, res) { res.json([ {username: "fake", permission: "admin" }, {username: "fake2", permission: "user" } ]) } exports.getUsers = getUsers;

翡翠从string格式问题的HTML

我正在尝试渲染存储在mongodb中的一段HTML(由TinyMCE创build),稍后由jade渲染。 这是我的post.contentstring,从console.log显示: <p>Well, I'll tell you about that…</p><p>Sometimes, we are just not sure about these things&nbsp;<span id="_mce_caret" data-mce-bogus="1" style=""><strong>Until we get some formatting!!!!</strong></span></p> 我期待它看起来像这样: 那么,我会告诉你… 有时,我们只是不确定这些事情, 直到我们得到一些格式化! 这就是我所看到的(从Chrome复制): 我在这是要干嘛? < 那么,我会告诉你… 有时,我们只是不确定这些事情, 直到我们得到一些格式化! >好吧,我会告诉你… 有时,我们只是不确定这些事情, 直到我们得到一些格式化! > 这是我的玉模板的相关部分: .container.content h2 #{post.title} hr div #{post.content} 我究竟做错了什么? 显然是UTF-8字节顺序标记…它指向一个格式问题,但我没有看到任何地方我说任何关于格式或改变格式。 在一件事情中出现也是没有意义的。 也不会导致console.log的问题。 至于它重复了两次,我相当迷惑。 也许我写了我的模板是错的?

Ajax Express NodeJS在页面的一部分加载ejs模板

好的,所以我有代码,把我带到我的索引页,然后我通过ajax调用代码给我回从我的mongoose数据库的结果。 所有这些调用正在工作,但我似乎无法弄清楚如何让我的代码执行成功的ajax调用加载另一个较小的ejs文件在当前页面的一部分? 我已经阅读了一些说我需要渲染ejs服务器端的东西,但是我怎样才能打电话给服务器,让它只更新页面的一部分,而不是整个页面加载。 我试图在已经产生完整结果的页面上执行searchfunction,所以我想用已经search的内容来replace完整的结果。 这里是我对数据库的导出调用: exports.index = function(req, res, next){ Recipe.find(). sort('-updated_at'). exec(function(err, recipes, count){ if( err ) return next( err ); res.render('index', { title: 'Recipe Finder Index', recipes:recipes }); }) }; exports.search = function(req, res, next){ var param=req.params.search; console.log(param); Recipe.find({"fn":new RegExp(param)}). sort('-updated_at'). exec(function(err, recipes, count){ if( err ) return next( err ); //res.render('index', { […]