Articles of model view controller

我可以通过Node.js发送多个响应给客户端吗?

我正在使用Node.js ,我想发送多个响应到客户端。 所以客户端会发送一个AJAX POST请求并获取一些数据。 但是服务器必须继续做一些处理,当这些完成后,我希望它能够发送更多的数据。 我知道这是一个很好的候选人的Socket.io ,但我还没有真正看到如何在MVC框架中使用socket.io的例子。 它是否在控制器中?

如何在模型和控制器之间传递一个查询结果

我的问题是以下几点: 我有nodejs + expressjs,然后用generator-express生成一个mvc项目,所以我有mysql + sequelize + gulp应用程序。 我连接到数据库,并在模型中查询,但我不能将结果传递给控制器​​,并在屏幕上打印。 而不是我得到一个错误,该variables是未定义的。 模型(regiones.js)的代码是: module.exports = function (sequelize, DataTypes) { var regiones = sequelize.define('regiones', { idregion: DataTypes.INTEGER, nombre: DataTypes.STRING }, { classMethods: { encontrar : function(){ sequelize .query('SELECT * FROM regiones', { raw: true }) .spread(function(resul, m){console.log(resul); return resul;}); } } }); return regiones }; 控制器(home.js)的代码是: var express […]

一旦我开始添加文件到我的控制器文件夹代码中断 – 为什么?

我使用节点,expression,FS和一些其他的东西来创build我的第一个MVC框架应用程序。 我现在正在search更多关于我遇到的错误,但没有find我正在寻找的清晰度。 现在,当我将所有的代码保存在我的server.js文件中时,我没有收到错误。 但是这不是什么MVC的,所以在某些时候,我创build了一个users_controller.js文件开始移动到下面的路线(除了('/')路线)。 一旦我这样做,一切都打破了! 我得到的错误是=> TypeError: undefined is not a function 被引用的行是=> route.controller(app); 这里是代码: var express = require('express'); var logger = require('morgan'); var path = require('path'); var exphbs = require('express-handlebars'); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var session = require('express-session'); var cookieParser = require('cookie-parser'); var pg = require('pg'); var bcrypt = require […]

NodeJS / Express MVC模式中的REST数据源

在Express MVC应用程序中包含外部REST数据源的最佳做法是什么? 我们是否应该为从外部REST源检索的实体创build一个模型? 我们来看一下这个实际的例子: 我们的出发点是使用mongoose作为ODM的user.js模型。 var mongoose = require('mongoose'); var userModel = function () { //Define a simple schema for our user. var userSchema = mongoose.Schema({ name: String, twitterId: Number }); return mongoose.model('User', userSchema); }; module.exports = new userModel(); 我们的目标是显示特定用户的所有推文,所以我们创build一个控制器controller / userTweets.js,在那里为View准备数据。 我们应该如何在应用程序中包含Twitter REST API来处理这个用例呢? (比方说,我们正在使用一个nodejs客户端的twitter apis) 我更愿意为推特实体使用特定的模型,然后使用我们的模型从控制器中检索用户的推特,但我们的tweet.js模型应该如何呢? 还是应该以不同的方式devise我们的REST API集成?

发布请求不会与Angular.js一起发送。 我究竟做错了什么?

所以即时通讯尝试从客户端点击一个名称,并发送名称(我改变为json为了实际上能够发送信息)到服务器。 现在,服务器发送回来,客户端将其发布到索引页面(即时通讯,以便我可以看到服务器正在获取的数据)。 当我看到数据显示为[对象对象]。 所以有些事情出错了,我希望有人能帮助我。 的index.html <body> <div ng-app="myApp" ng-controller="customersCtrl"> <table style="width:100%"> <tr ng-repeat="contact in databases.databases"> <td>{{ contact.name }} <button type="button"ng-click="addContactlist(contact.name)">Click Me</button></td> <td>{{ contact.sizeOnDisk }} </td> <td>{{ contact.empty }} </td> </tr> </table> DB name clicked: <p ng-bind="DB_NAME"></p> </div> </body> client.js var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $http) { console.log("controller connected"); function refresh(){ // create contacklist […]

KeyStone JS账户控制器

我在NodeJS编码时了解MVC结构。 我最近开始使用Keystone JS,我非常喜欢它。 但是,他们设置他们的控制器的方式,似乎控制器只能提供一个视图的目的。 在之前的项目中,我有一个Account.js模型和一个Account.js控制器。 我想看看它会如何复制到keystone。 所以:我如何让用户在一个Keystone项目中注册/login/注销(不是在pipe理界面中,而是像一个常规站点的成员)? 我怎么做一个帐户控制器(显然没有视图渲染)?

用nodejs组织文件夹结构和数据库查询,使用MVC模式expressionmongoose

我是nodejs以及mvc模式的新手。 我试图创build一个应用程序,利用快递,mongoose,ejs,护照。 我不确定在哪里放置我的数据库查询。 目前我已经开始将它们添加到controllers / routes.js文件中。 以下是我迄今为止创build的近似文件夹结构: |– config — database.js // Exports just the db url — passport.js // Exports Passport local auth strategies (includes db connections) |– controllers — routes.js // Routes |– models — user.js // Exports mongoose user schema |– public |– views — home.ejs // Home ejs page — signup.ejs […]

expressjs中的路由错误

我试图学习expressjs,并试图找出一种方法来添加MVC结构。 出于某种原因,当我尝试访问本地主机:3000时,出现404错误。 我的目录结构是: 应用 app.js routes.js 控制器 意见 等等 App.js: mymodule = { /* initialize * ============================== * load dependencies & external node modules, setup engines */ initialize: function() { // load modules this.express = require('express'); this.path = require('path'); this.favicon = require('static-favicon'); this.logger = require('morgan'); this.cookieParser = require('cookie-parser'); this.bodyParser = require('body-parser'); // initialize main express […]

NodeJS REST API模型和服务结构

我正在使用Express和MariaDB / Cassandra作为我的后端编写一个中等规模的应用程序。 我试图按照模型服务控制器模式。 我最初的devise有精简的控制器和胖模型,但我觉得模型包含了很多代码,可能需要分解成单独的文件。 所以现在我有一个位于控制器和模型之间的服务层。 我试图实现控制器/ API方法和服务方法之间的1-1映射。 每个单一的服务方法将尝试包含所有由该API方法执行的操作的代码。 我的validation逻辑在服务中。 此服务可能会使用async nodejs模块在内部调用多个模型,处理并将响应传递给其他模型。 但是这被certificate是一个问题。 想象一下,我正在注册一个用户,每个用户都属于一个组织。 – 我检查用户是否已经存在。 如果没有,我为用户创build一个组织。 我得到组织ID。 我创build用户,将组织标识映射到用户的表中。 所有这些都是在交易中进行的。 如果我将validation放在服务中,那么即使我没有用于插入组织的控制器/ API,我也必须有一个服务来插入组织,以便validation可以在那里执行。 这将打破Service和Controller / API之间的1-1映射。 将validation放在模型中的另一个问题是在插入组织或用户之前立即执行。 现在,如果组织数据正确,但用户数据不正确,组织将实际插入,但必须回滚。 有没有更好的方法来处理这个问题? 我是否应该首先在服务中对用户和组织进行validation,然后在模型中再次执行validation,还是有更好的方法来处理? 我很乐意进行剧烈的改变。

将页面标记为“async = true”,用于Visual Studio MVC项目

我正在使用Edge.js,以便我可以从C#中调用Node.js。 根据链接中的文档,我会做类似于以下内容: [HttpPost] public ActionResult Input(InputModel obj) { validateInput(obj); return View(); } private async void validateInput(object obj) { var func = Edge.Func(@" return function (data, callback){ var username = data.username, email = data.email; callback(null, username); } "); ViewBag.Msg = (string)await func(obj); } 但是,我得到以下运行时错误: Additional information: An asynchronous operation cannot be started at this time. Asynchronous […]