Tag: 表示

如何dynamic路由页面?

我如何dynamic路由每个页面而不使用app.get()每次? 我的代码也返回了404错误代码 console.log(page + " rendered"); 不会因为某种原因而工作。 var express = require('express'); var path = require('path'); var ejs = require('ejs'); var app = express(); app.engine('.html', ejs.__express); app.set('views', __dirname + '/views'); app.set('view engine', 'html'); var pages = [ 'users', 'index' ]; pages.forEach(function(page) { app.get('/' + page, function(request, response) { response.render(page); console.log(page + " rendered"); }); console.log(page + […]

无法加载Handlebars帮助器function

我正在尝试创build一个自定义的hbs帮助器,并在我的express.js应用程序的页面中使用它。 这是我如何做,但它一直说: 缺less帮手“if_eq” 我的页面: <html> <head> <script src="javascripts/handlebars-v4.0.6.js" type="text/javascript"></script> <script src="javascripts/hbs_funcs.js"></script> </head> <body> {{#if_eq page "home"}} <li class="active"><a href="/home ">LOBBY</a></li> {{else}} <li><a href="/home ">LOBBY</a></li> {{/if_eq}} </body> </html> 这是我的hbs js文件: Handlebars.registerHelper('if_eq', function (a, b, opts) { if (a == b) // Or === depending on your needs return opts.fn(this); else return opts.inverse(this); });

Nodejs表示MIMEtypes的问题

我的CSS文件作为HTML /文本而不是作为样式表。 导致在CSS不起作用。 这里有错误信息: 资源解释为样式表,但是以MIMEtypestext / html:“ http:// localhost:3030 / css / bootstrap.css ”传输。 这里是我的server.js var express = require('express'), stylus = require('stylus'), logger = require('morgan'), bodyParser = require('body-parser'), path = require('path'); var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var app = express(); function compile(str, path){ return stylus(str).set('filename', path); } app.set('views', __dirname + '/server/views'); app.set('view […]

bcrypt-nodejs抛出的错误参数 – Passport

我有一个login系统为我的Node.js应用程序设置。 最近,我改变了我的用户模型(CoffeeScript): password: String 至 password: type: String select: false 我的函数比较密码哈希与bcrypt如下: userSchema.methods.validPassword = (password) -> bcrypt.compareSync password, @local.password 现在,每当我运行上面的函数,这个错误被抛出 Incorrect arguments 任何人有任何想法,为什么这会抛出后,我的用户模型中添加“select:false”?

当使用enctype =“multipart / form-data”时,我得到CSRF错误

每当我添加enctype =“multipart / form-data”到我的html表单,我得到“ForbiddenError:无效的csrf标记”如果我删除enctype,它的工作原理我发送的csrf代码是这样的:input(type =“hidden “name =”_ csrf“value = csrf_token) 我的快递文件: var express = require('express'); var session = require('express-session'); var compression = require('compression'); var cookieParser = require('cookie-parser'); var cookieSession = require('cookie-session'); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var csrf = require('csurf'); var env = process.env.NODE_ENV || 'development'; module.exports = function (app, passport) { […]

表示PUT显示不能PUT错误

我有这个expression router.put('/admin/profile?:id/actions', (req, res) => { console.log(req.body.actions) }); 在邮递员我做一个PUT请求 HTTP://本地主机:3000 / API /pipe理/ 58fb442234c93715b435395 /行动 以行动为重点 行动:批准 但我得不到PUT错误? 我期待在我的节点的控制台“批准”。

页面刷新后NodeJS快速会话过期

每次刷新页面时,我的nodejs应用程序的会话都将过期,login后。 如果我访问不同的页面,它确实工作正常,但只要刷新页面,会话结束。 我尝试了几件事情,但似乎没有任何工作。 即使在页面刷新后,我怎样才能防止它过期? 如果我可以将会话存储在数据库或其他地方,以防止它过期。 这里是文件 护照init.js var mongoose = require('mongoose'); var User = mongoose.model('user'); var localStrategy = require('passport-local').Strategy; var bcrypt = require('bcrypt-nodejs'); module.exports = function(passport) { passport.serializeUser(function(user, done) { console.log('serializing user:',user.username); done(null, user._id); }); passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { if(err) { done(500,err); } console.log('deserializing user:',user.username); done(err, user); }); }); passport.use('login', new localStrategy({ […]

我可以呈现JSON.parse数据到EJS吗?

我是NodeJS和Express的新手(一般编码)。 我正在尝试将数据呈现到EJS视图页面,以便在前端处理它。 它看起来像这样: app.set('view engine','ejs'); var str = JSON.parse('[{"name":"bill", "age":"26"}, {"name":"jeff", "age":"32"}]'); str.forEach(function(data){ console.log(data.name); }); app.get('/data', function(req, res){ res.render('data', {str:str}); }); 我尝试通过input<%= data %>在EJS文件中testing它,我在浏览器中得到的输出是[object Object],[object Object]。 我觉得我缺less了一些东西。 有人可以帮我吗? 谢谢 编辑:谢谢Booligoosh。 只是想补充说,我不得不在EJS方面将其转换回JSON,以使其工作。 🙂

在使用胡子时模拟Jade的“布局”function

我设置节点并快速地按照本页上的说明集成了mustache.js模板: http://bitdrift.com/post/2376383378/using-mustache-templates-in-express 到目前为止,除了我在尝试设置mustache.js具有与Jade的“布局”相同的function方面遇到了很多麻烦之外。 我基本上试图设置1个主文件作为我的其他页面的shell类似于用Django扩展模板。 防爆。 布局文件可以有这样的: [HTML] [标题]我的标题[/标题] [正文] {{内容}} [/体] [/ HTML] {{content}}被replace为一个文件的内容,我将在该页面的路由中以某种方式指定。 我只是不知道如何设置这个expression,因为我仍然是一个巨大的新手,它的设置与翡翠的方式是自动的,这似乎是特定于翡翠只。 使用Jade,你只需要制作一个“layout.jade”文件,并将其作为你的路线: app.get('/', function(req, res) { res.render('home', { title: 'My home page' }); }); 然后神奇地将home.jade的内容添加到您指定body!= body标签的layout.jade文件中。 所以是的,我怎么能用胡子来做这样的事呢? 如果你知道答案,请一步一步解释。

无法将nib添加到我的expressjs / nodejs站点?

我跟着这里的例子添加笔尖到我的网站: /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , nib = require('nib'); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ secret: 'your secret here' })); app.use(require('stylus').middleware({ src: __dirname + '/public' })); app.use(nib()); app.use(app.router); app.use(express.static(__dirname + '/public')); }); […]