Tag: 表示

如何在Node.JS中分别接收req.body.model的所有对象而不是它的所有variables?

我有两个元素的示例表单,模型用户的名字和姓氏 form(action="/user/create", method="post") label(for="name") Name input(type="text", id="name", name="name", value="", autofocus) label(for="surname") Surname input(type="text", id="surname", name="surname", value="") 当我发布它时,我在请求主体中发送一个对象 { "name": "[value input name]", "surname": "[value input surname]" } 由于这个原因,在我的节点js服务器,我得到这个模型的值来validation它: { name: req.body.name, surname: req.body.surname } 但是我想把所有的模型信息作为对象 form(action="/user/create", method="post") label(for="name") Name input(type="text", id="name", name="user.name", value="", autofocus) br label(for="surname") Surname input(type="text", id="surname", name="user.surname", value="") 并得到它: req.body.user 但它返回我不确定。 当我读req.body的时候是: […]

路线在特快JS

我有一个代码行: app.use(express.static('public')); 为公共文件夹中的静态文件,但build立一个路线: app.get('/search/jobs', jobs.index); Expressjs在url之前进行/search 。 而我在控制台浏览器中出现错误: GET: http:// localhost:5000 / search / css / materialize.css 任何想法?

Express + PassportJs:为什么我们需要在passport策略中用process.nextTick()延迟执行方法?

我正在使用护照本地策略进行用户注册。 我碰到这个代码示例,其中作者正在使用process.nextTick来延迟Passport LocalStrategycallback中的方法的执行。 我知道我们可以使用process.nextTick延迟某个方法的执行,并在事件循环的下一个记号中执行它,但是能否解释为什么我们需要在这个例子中使用它? passport.use('signup', new LocalStrategy({ usernameField: 'email', passReqToCallback: true // allows us to pass back the entire request to the callback }, function(req, email, password, done) { findOrCreateUser = function() { if (isValidEmail(email)) { // find a user in Mongo with provided email User.findOne({ 'email': email }, function(err, user) { // In case […]

如何正确提供与Node.js的私人静态文件?

我想保护上传的图像。 当用户上传图片时,他们被保存到以下path: public/dogs/{userId}/{imageName} 每个用户都有自己的保存图像的目录。 我已经想通了,如果我做这样的事情,我可以很容易地提供这些图像,但每个人都可以访问这些图像: app.use(express.static('public')); 我的用户validation工作方式,我检查path中请求的url包含/api/admin 。 例: router.get('/api/admin/dogs', dog.getAll); 我想以类似的方式提供图片,以便让pipe理员访问它们。 有没有可能有这样的事情: router.get('/api/admin/dogs/images/:userId/:imageName', image.getOne); 感谢您的帮助。

如何使用knex / Bookshelfselect数据库expression式作为值

我试图执行下面的查询使用knex.js和MySql SELECT m.id, TIME(date_created) AS `timestamp`, u.username, m.`message` FROM `messages` AS m INNER JOIN users AS u ON u.id = m.user_id WHERE m.game_id IS NULL AND m.`date_created` > DATE_SUB( CURRENT_TIMESTAMP (), INTERVAL 12 HOUR ) ORDER BY m.`date_created` ASC LIMIT 50 为了正确的处理expression式,在DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 12 HOUR)闭包中DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 12 HOUR)根据文档,在knex中有whereRow()方法。 我试图使用select()方法 select('messages.id', 'TIME(date_created) AS timestamp', 'users.username', 'messages.message') […]

使用mongooseSchema.methods函数运行应用程序时出错

使用NodeJS(v0.10.25)和ExpressJS(v4.4.12)以及下面的Schema var mongoose = require('mongoose'); var Schema = mongoose.Schema; var models = require('./inherit/models.js'); var userSchema = new Schema({ username: { type: String, required: true, unique: true, index: true }, password: { type: String, required: true , minlength: 128, maxlength: 128 }, email: { type: String, required: true, unique: true, index: true }, profileImage: { type: […]

在路由中使用RE和命名时,'0'项目

我试图拆分下面的URL(他们是没有限制的子查询): www.zookeeper.com/api/zoo/monkey/1/feed 成: { "Main": "zoo", "Sub": "/monkey/1/feed" } 在下面的代码中, SUB_REQUEST字段中总是缺less最后一个字符。 router.get("/:BASE_REQUEST/*:SUB_REQUEST",function(req,res) { res.json( { "Main":req.params.BASE_REQUEST, "Sub":req.params.SUB_REQUEST+req.params[0]//append last char hack! }); }); 如果你看看req.params,总会有一个神秘的'0'。 { '0': 'd', BASE_REQUEST: 'zoo', SUB_REQUEST: '/monkey/1/fee' } 有人可以解释这种行为吗? 这个'0'来自哪里? 我正在使用快速版本4.12.4

使用Express-Handlebars视图引擎在Express 4.x框架中渲染局部视图

我试图创build一个nodejs应用程序使用Express框架作为视图引擎快车把,但试图查看主页时遇到以下错误: Error: You must pass a string or Handlebars AST to Handlebars.compile. You passed [object Object] 任何人都可以让我知道这里出了什么问题。 链接到github回购: https : //github.com/bdinesh/LearningNode.git 下面是我试图运行的代码: index.js var express = require('express'), app = express(), hbs = require('express-handlebars'), // Create `ExpressHandlebars` instance with a default layout. hbsInstance = hbs.create({ defaultLayout: 'main', extname: '.hbs' }), fortune = require('./lib/fortune.js'), weatherData = require('./lib/weather.js'); […]

Node.js:Passport,检查用户是否已经login

对于使用令牌系统login用户的用户,我有这个快速路由器: var express = require('express'); var router = express.Router(); var passport = require('passport'); var User = require('../models/user'); var Verify = require('./verify'); router.post('/register', function(req, res) { User.register(new User({ username : req.body.username }), req.body.password, function(err, user) { if (err) { return res.status(500).json({err: err}); } passport.authenticate('local')(req, res, function () { return res.status(200).json({status: 'Registration Successful!'}); }); }); }); router.post('/login', […]

TypeError:Dbschema(Mongoose Schema)不是函数

我正在尝试使用mongoose使用MEAN_Stack创build一个简单的registry单。 这是我的models / dbSchema.js var mongoose = require('mongoose'); var Schema = mongoose.Schema; var User = new mongoose.Schema({ FirstName: String, LastName: String, City : String, Email : String, Userid : String, Password: String }); module.export = mongoose.model('user', User); 这是我的server.js var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var jwt = require('jsonwebtoken'); app.use(express.static(__dirname […]