Articles of 表示

express.js +手写笔:自动手写笔编译不起作用

我运行express.js 3.4.0与手写笔0.37.0我试图让expression和手写笔一起工作,所以当我要求一个实际上是手写笔文件在其他地方的一个CSS文件,expression触发器手写笔来编译它,然后服务它(相当标准,我猜,因为我看到它在许多教程中工作)。 我的文件结构: myApp resources stylus style.styl public css 我的app.js(只有相关的行): app.use("/static", express.static(__dirname + "/public")); app.use(stylus.middleware({ src: __dirname + "/resources/stylus", dest: __dirname + "/public/css", debug: true, force: true, })); 从我读的,请求/static/css/style.css应该导致从resources/stylus/style.styl表示生成这个文件,然后提供。 这不起作用。 如果我请求文件/style.css文件/public/css/style.css是正确生成的,但是我仍然得到一个404。 之后,我可以通过/static/css/style.css来请求它,因为它现在已经存在。 有人可以build议任何步骤来解决这个问题吗? 我错过了什么吗?

在Express.js应用程序中需要()一些东西是多么昂贵?

我有一个Express.js Web应用程序,它服务于我的一个域。 app.js文件如下所示: var express = require('express'); var app = express(); // and so on… 我想在app.js文件中使用我自己的函数之一,所以我想我会把函数放在一个单独的文件(作为一个模块,即module.exports =东西),然后在app.js需要它app.js文件: var myfunc = require('./path/to/myfunc'); 不过,我担心performance。 在Express.js应用程序中需要文件时是否会有明显的性能损失? 我想这个问题可以归结为app.js代码被执行了多less次 – 每次对我的域的HTTP请求执行一次,或者在初始化过程中只执行一次,以及在HTTP请求之间是否以某种方式cachingrequire()结果。

Express JSredirect到默认页面而不是“无法获取”

我使用快递JS,我有一套我已经定义如下的路线 require('./moduleA/routes')(app); require('./moduleB/routes')(app); 等等。 如果我尝试访问我没有在上面的路线中定义的任何路线,说 http://localhost:3001/test 它说 Cannot GET /test/ 但是,而不是我想redirect到我的应用程序的索引页面。 我想这个redirect发生在所有未定义的路由上。 我怎样才能做到这一点?

Grunt环境variables不会被设置,直到所有的任务加载

我在我的项目中使用npm模块grunt env和load-grunt-config 。 grunt env为你处理环境variables,而load-grunt-config处理,为你加载gruntconfiguration。 你可以把你的任务放到其他文件中,然后load-grunt-config将它们捆绑在一起,并且有很多的负载并且为你消耗。 您也可以创build一个aliases.js文件,将您想要合并为一个任务的任务一个接一个地运行。 它与原始Gruntfile.js的grunt.registerTask任务类似。 我把所有的grunt任务放在一个单独的grunt/文件夹下,并且在主Gruntfile没有额外的子文件夹,正如Github上的load-grunt-config README.md所build议的那样。 这是我瘦身的Gruntfile : module.exports = function(grunt) { 'use strict'; require('time-grunt')(grunt); // function & property declarations grunt.initConfig({ pkg: grunt.file.readJSON('package.json') }); require('load-grunt-config')(grunt, { init: true, loadGruntConfig: { scope: 'devDependencies', pattern: ['grunt-*', 'time-grunt'] } }); }; 从理论上讲,将所有这些文件设置为load-grunt-config加载的正确方式应该与只有一个Gruntfile.js 。 不过,我似乎遇到了一点麻烦。 似乎在env任务下设置的环境variables不会为随后的grunt任务设置,而是由时间node处理其任务(在本例中为express服务器)设置。 grunt env任务: module.exports = { // environment variable values […]

Node.js上的Express.js是否有内存泄漏?

我一直使用运行在一个简单的项目的Heroku服务器上的node.js快递。 当我开始使用新的文物来监视内存时,我注意到一个缓慢的内存泄漏模式。 我删除了我开发的所有代码和所有其他节点模块,只留下自己和新的文物模块。 我仍然观察到内存泄漏。 我想知道如果这是express.js内存泄漏。 这里是所有剩下的代码: require('newrelic'); var express = require('express'); var app = express(); var env = process.env.NODE_ENV || 'development'; if ('development' == env) { app.set('port', process.env.PORT || 3000); } app.get('/', function ( req, res ) { res.send('The server is up and running!'); }); app.listen(app.get('port'), function() { console.log('Express server listening on port %d in […]

如何将app.js中的常用variables渲染到所有的express中

在我的Node.js应用程序中,一些渲染variables或每条路线是常见的。每条路线上都有大约4-5个variables。 我有大约20条路线。 目前我正在做res.render每个路由中的这些variables 有没有一种方法可以将这些常用variables传递给每个路由正在使用的某个地方(比如:app.js),以便我可以清理一下我的代码。 我使用express.js作为模板的节点和handlebars 。 编辑:我想我应该多解释一下 res.render('abc', { commonitem1: 'one', commonitem2: 'two', … }); ————————————- another route res.render('xyz', { commonitem1: 'one', commonitem2: 'two', … }); 我想避免在我的每一条路线上重复这一点,并想从一个共同的地方渲染它。

不会捕获从mongoose承诺的callback函数抛出的错误

我花了太多时间试图弄清楚为什么我的express.js控制器没有响应一个简单的查询,并且发现从一个Mongoose-promisecallback触发的运行时错误正在默默地中断callback过程。 这里是我的代码的简化版本: server.get('/api/test', function (req, res, next) { User.find({}).exec().then(function success(users){ console.log('SUCCESS'); typo[0] = 1; // throws a runtime error res.json(users); }, function error(err){ console.log('ERROR'); res.json({error: err}); }); }); 这导致SUCCESS在我的控制台显示,但没有任何反应。 没有给予用户的回应,我的错误造成的错误没有出现在我的控制台,错误callback也不会被调用。 我知道一个人不应该从callback函数中抛出exception,但是在这种情况下,这只是一个错字,而且当我这样做的时候,我会被警告(比如标准输出中的堆栈跟踪)的错误。 (毕竟我们是人类) 在你看来,当承诺callback中出现这种错误时,获得反馈的最佳方式是什么?

如何使用Express for HTTPS的路由?

我正在对我的nodeJS服务器启用https请求。 但我想使用相同的路由,我可以从HTTP请求与8080端口接收到我的HTTPS与443端口。 http://api.myapp.com:8080/api/waitlist/join成功https://api.myapp.com:443/api/waitlist/join不是我在代码中错过了什么,以使用相同的httpsServer的“应用程序”的路线? var fs = require('fs'); var https = require('https'); var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var cors = require('cors'); var config = require('./config'); // Configure app to use bodyParser() […] // Configure the CORS […]

在expressjs渲染中干燥布局本地化

我在nodejs中使用express,并试图保持我的视图呈现干燥。 在我的布局里面,我有以下的东西(我在用玉石) body nav.login -if(currentUser) ="logged in information" -else ="logged out information" !=body 问题是,我每次渲染,现在我需要有 res.render('anything.jade',{ locals: { currentUser: req.session.currentUser, /*all of my other locals*/ } }); 看起来像是一个痛苦,必须通过所有的渲染调用,并添加,然后做同样的事情,如果我必须添加任何其他当地人的布局。 有什么办法可以避免在我渲染的任何地方重新input“currentUser”到当地人

将variables传递给Jade而不使用Express

关于Jade模板引擎的快速问题: 在不使用express.js时,如何将node.jsvariables传递给.jade模板? 我正在尝试制作一个不使用快递的小型网站,以便我能够理解一切如何运作。 另外,是否有教程或文章关于使用Jade和node.js没有expression?