Tag: 表示

nodejs从绝对path运行脚本

我正在使用Express在Node.js编写一个简单的应用程序。 我的脚本path/to/script/server.js就像path/to/script/server.js 。 当我通过node server.js运行脚本,并在上面的path中,一切正常。 当我尝试运行脚本trhough node path/to/script/server.js它给我以下错误: Error: Failed to lookup view "index.html" in views directory "d:\views" at Function.app.render […] 我的views是在path/to/script/views 。 如何解决?

咕噜玉 – 如何编译单一的玉文件,而不是一切

我有我的jade.js文件中的以下内容 'use strict'; var config = require('../config'); module.exports = { dist: { options: { pretty: true, debug: false, timestamp: '<%= new Date().getTime() %>' }, files: [{ expand: true, cwd: 'html_templates/views/', src: '**/*.jade', dest: 'html_templates/html/', ext: '.html' }] } }; 这是伟大的工作! 唯一的问题是,我正在一个非常大的应用程序,我的玉文件超过10MB。 当我修改一个玉文件的视图,并运行“咕噜玉”。 它重新编译我所有的HTML(大约需要5分钟)。 如何告诉grunt只编译相关的jade文件(只有一个html文件) 例如:我正在处理: html_templates/views/module/landingpage2.jade 我只想编译: html_templates/html/module/landingpage1.html 请帮忙

NodeJs,Express,BodyParse和JSON

我试图使用Express 4.0实现一个简单的服务器,并与BodyParserparsing消息。 为了testing我的服务器,我使用邮差。 使用x-www-form-urlencoded作为消息模式,它可以正常工作,但是使用JSON更改消息我无法使用BodyParse数据。 这是我的代码: app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); var router = express.Router() router.get('/', function (req, res){ res.json({message: "nd…"}) }) var sendRoute = router.route('/msg') sendRoute.post(function(req, res){ // HERE IS THE PROBLEM****************************** // It works with urlencoded request but not with JSON var dataparam1 = req.body.param1 var dataparam2 = req.body.param2 **************************************************** . . . }) […]

在express.js中加载静态文件

我使用快递来build立networking应用程序。 我有路由或静态文件的问题。 我添加了对静态文件的引用: app.use(express.static(path.join(__dirname, 'public'))); 并设定路线: app.use('/', routes); app.use('/users', users); app.use('/blog', blog); 在我的blog路由器中: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res) { res.render('blog/index'); }); /* GET registration form. */ router.get('/registration', function(req, res) { res.render('blog/registration'); }); module.exports = router; 所以我的问题:当我去/blog我的静态文件加载正确(没有博客的path)。 但是当我去/blog/registration我得到错误(博客的path): GET /blog/stylesheets/css/bootstrap.min.css registration:1 GET /blog/stylesheets/lib/og-component.css registration:1 GET […]

防止Express.js崩溃

对于Express.js来说,我是一个相当陌生的人,其中一个让我感到惊讶的事情是,比起Apache或者IIS等其他服务器, Express.js服务器每遇到一个未捕获的exception或者一些错误该网站并使其可供用户访问。 一件可怕的事情! 例如,我的应用程序崩溃了一个Javascript错误,因为一个variables没有定义由于数据库表中的名称更改。 TypeError:不能调用未定义的方法'replace' 这不是一个很好的例子,因为在将网站移植到生产环境之前,我应该解决它,但是有时类似的错误可能会导致服务器崩溃。 我期望看到一个错误页面,或只是在该特定页面的错误,但closures这些事情的整个服务器听起来很可怕。 expressionerror handling程序似乎不足以达到此目的。 我一直在阅读关于如何通过使用域来解决Node.js中的这类事情,但是我没有发现任何专门用于Express.js的东西。 我发现的另一个选项,在所有情况下似乎都不被推荐,它使用工具来永久运行一个进程,所以在崩溃之后,它会自动重启。 像Forever , Upstart或Monit这样的工具。 你们如何处理Express.js中的这类问题?

如何使用Node JS的事件?

我想知道使用ExpressJS中的函数进行通信是否是一个好的做法? 如果是,我怎样才能发送我的发射事件的参数?

如何在express JS中获得匹配的路由模式?

我希望我的logging器中间件发送响应时logging每个匹配的路由。 但是可能有任何数量的嵌套子路由。 假设我有这个: var app = express(); var router = express.Router(); app.use(function myLogger(req, res, next) { res.send = function() { //Here I want to get matched route like this: '/router/smth/:id' //How can I do this? }); } app.use('/router', router); router.get('/smth/:id', function(req, res, next) { res.send(response); }); 可能吗?

Express中的客户端服务器

我怎么能发送一个obect到客户端的JavaScript? 我问早些时候的一个问题,被回答,接受了这个问题,因为我不能检查计算机上的答案: 客户端接收json对象的JavaScript 我仍然不知道如何将数据发送到客户端我试图req.send /渲染,它并没有得到在客户端的function。 客户: $.get('127.0.0.1:3000', {mydata: 'content'}, function(response){ //callback triggered when server responds console.log(JSON.stringify(response)); }); 服务器: app.get('/', function (req, res) { if(req.params.mydata === 'content'){ res.end("you sent content"); } else { res.end("you sent something else"); } }); 谢谢!

Express 4路线设置

我想正确,干净地设置我的快速路线,这是我的routes.js文件: var tokenCtrl = require('./routes/token'); var expressJwt = require('express-jwt'); var config = require('./config'); module.exports = function (app) { app.route('/api/token') .all(expressJwt({ secret: config.jwtPrivateKey, userProperty: 'auth' //JWT payload will be bound to this value (req.{value}) })) .post('validate', tokenCtrl.validate) .get('generate', tokenCtrl.generate); } 不幸的是,我不能在.post或.get(如上面)中指定路由后缀。 所以我卡住做这样的事情: var tokenCtrl = require('./routes/token'); var expressJwt = require('express-jwt'); var config = require('./config'); module.exports = […]

渲染时发送给EJS的空参数

林相当新Nodejs,我一直在努力解决这个问题,到目前为止,我不能find问题。 在我的应用程序的某个时候,我用一些参数来渲染一个EJS模板,但是看起来即使获得了参数,它们也是空的。 我testing了最基本的情况: console.log(req.user); res.render('menu.ejs', { user: String(req.user.username) }); 控制台输出: { id: 1, username: 'bob', password: 'secret', email: 'bob@example.com' } 所以我没有发送一个空值。 menu.ejs代码如下: <html> <body> <% user %> </body> </html> 真的很简单。 但是,当页面呈现,我所得到的是一个空的网页…即使有一个和更多的HTML,我只是不断获取和空的价值… 在我的应用程序的某个时候,我用护照来validation我的用户,并使用闪光,我设法得到一个消息: res.render('login.ejs', { message: req.flash('message') }); 但是,这仍然留下我的menu.ejs错误。 我重命名文件,重命名parameter passing,添加更多的参数,harcoded通过参数的值…我总是得到相同的结果=( 项目依赖: "dependencies": { "express": "~4.9.x", "express-session": "1.9.3", "mysql ": "2.5.3", "body-parser": "1.10.0", "passport": "0.2.1", "passport-local": […]