Tag: model view controller

node.js在variables中表示mvc方法名称

我有一个问题给控制器加载我的模型的名称: 我的app.js var express = require('express'); var app = express(); app.everyauth = require('everyauth'); app.mongoose = require('mongoose'); var fs = require('fs'); var config = require('./config.js')(app, express); //Include models var models = {}; fs.readdir(__dirname + '/models', function(err, files){ if (err) throw err; files.forEach(function(file){ var name = file.replace('.js', ''); models.name = require('./models/' + name)(app.mongoose).model; }); }); //Include controllers […]

了解express.js / sail.js控制器范围内的下一个中间件

我使用的是build立在express.js之上的sails.js。 在我的routes.js中,我定义了如下的路由 '/account/login': { controller : 'Session', action : 'logInAPI' }, 而我的会议控制器是这样的 logInAPI: function(req, res, next) { if (!req.param('email') || !req.param('password')) { var usernamePasswordRequiredError = [ 'You must enter a username and a password.' ] req.session.flash = { err: usernamePasswordRequiredError } return next(); } else{// Log in user}; } 我想知道什么时候我打电话在哪里指着中间衣服。 如果写回报将会发生什么; 而不是返回next();

快递得到错误

我在节点服务器上设置路由到我的应用程序控制器 – var http = require('http'); var app = require('express')(); app.get('/<path>/<query type>', function(req, res) { //Expecting query parameter <query type>?name=<something> var query = req.query.name; var path = '/<path>/<query type>?name='+query; var options = { host: 'localhost', port: 8080, path: path, method: 'GET' }; var reques = http.request(options, function(response) { console.log('STATUS' + response.statusCode); response.setEncoding('utf8'); response.on('data', function(chunk) { […]

Express(Node.js) – 有条件地包含CSS和JS文件

我目前正在使用Node.js的Express框架,并且在每页(路线)的基础上包括样式表和JavaScript文件。 我正在使用具有以下内容的routes / index.js文件的默认Express设置: exports.index = function(req, res){ res.render('index', { title: 'Index Page Test' }) }; exports.browse = function(req, res){ res.render('browse', { title: 'Browse Page Test' }) }; 上面的路线工作正常,并按预期将index.jade和browse.jade加载到layout.jade的“body”中。 但是,索引路由所需的资源(CSS和JS文件)与浏览路由所需的资源并不相同。 我有可能传递一个数组到包含所需资源的layout.jade模板,只是让它循环? 我试图通过以下方式来做到这一点: Index.js(路线) scripts: [ 'javascripts/jquery.js', 'javascripts/easel.js', 'javascripts/script.js' ] 其次是: Layout.jade each js in scripts script(src= js) 但是,它只是抛出一个错误,说“脚本没有定义”。 我很确定我没有这样做。 此外,只是添加,我偶然发现了另一个类似的StackOverflow问题在这里: Node.js与Express:导入客户端JavaScript使用Jade视图中的脚本标记? 但我并不太在意那里显示的方法(它需要一个额外的帮手)。 如果可能的话,我想坚持模板引擎本身提供的function。 谢谢。 编辑:如果有帮助,我想实现类似这样的事情: […]

Node.JS / Mongoose / Express – >对象没有方法“findAll”

我试图从我的model.js传递一个方法到我的route.js ..而我的路线找不到任何方法! 我search了一个解决scheme,并testing了很多代码,没有成功。 我是Node的初学者,如果这是一个愚蠢的错误,那么很抱歉。 这是我的代码的一部分: Route.js var mongoose = require('mongoose'); var membersModel = new require('../models/MemberModel'); // Member list page exports.list = function(req, res){ membersModel.findAll(function(err, docs){ res.render('list.jade', { title: 'My Registration App – Member list', member: docs }); }); }; MemberModel.js var mongoose = require('mongoose'), Schema = mongoose.Schema, ObjectId = Schema.ObjectId; // Open DB connection var […]

避免在Node.js单身?

我已经多次读过,应该尽可能地避免单身。 通过单身我的意思是这种types的代码 exports = module.exports = new Passport(); 这段代码来自Node.js模块PassportJS。 它允许我们使用护照,并添加一些将在我们的整个代码中共享的var。 所以,你可以看到我们可以做这个代码: https : //github.com/ragulka/sails-starter-app/blob/master/api/controllers/SessionController.js (这只是一个例子,我也是,我也是怪没人)。 请注意,他正在使用require的文件顶部的护照,然后使用之前在代码中添加的策略之一。 显然这很方便,但这是做到这一点的最好方法吗? 有没有办法从先前的代码中的控制器内传递护照variables? 让我知道如果有什么不清楚。 提前致谢。

在SailsJS中devise一个更薄的控制器

我是MVC编程的timespent 。目前我有一个属性timespent的User模型。 我使用d3.js来绘制每个用户在我的一个视图中花费的时间。 目前我正在实现这个方法是通过合并search数据库的所有逻辑,并在UserController中获取正确格式的数据。 从我在风帆上看到的文档,他们会尽可能地推荐“薄”控制器。 还有哪些地方可以将所有这些search/格式化代码以更加可重用的方式进行合并?

在没有视图的REST API的MVC框架中的控制器

我明白,MVC框架中的Controller作为模型和视图之间的接口。 如果我的后端是一个API(没有任何视图),控制器不需要? 如果是的话,我应该把我的CRUD操作放在模型中吗?

Geddy – 节点在保存任何文件后没有重新启动

不知道为什么这一下子突然中断了,但是在运行Geddy的时候,只要在控制器,视图,模型中进行更改。 它不被认可,geddy不会重新启动。 目前运行的版本: 节点:v0.10.20在Mac 10.8上通过自制软件Gedd​​y:0.10.3通过npm install -g geddy 更新: 只好通过安装geddy:sudo npm install -g geddy 好像现在正在重新开始文件保存。

如何构build我的nodejs代码? 胖模型/瘦身控制器

我的代码工作,但我明白,最好有胖的模型和皮包骨头的控制器。 但是,我使用3种不同的模型,不幸的是使我的控制器变胖。 组织这个代码的最好方法是什么(使用胖模型/瘦控制器概念)? 我一直在阅读代码结构,但我有点不确定的最佳做法。 控制器: var Product = require('../models/product'); var Collection = require('../models/collection'); var Vote = require('../models/vote'); exports.topSearch = function(req, res) { console.log(req.body, "search product") Product.search({ query_string: { query: req.body.search } },req.body.searchObject, function(err, results) { if (err) console.log('ERR', err); if (results) { var data = results.hits.hits; Vote.find({ user: req.user._id }, function(err, votes) { if (!err) […]