Tag: 表示

MissingSchemaError为Mongoose的填充方法

我试图工作mongoose的填充,但不断得到这个错误: /node_modules/mongoose/lib/connection.js:625 throw new MongooseError.MissingSchemaError(name); ^ MissingSchemaError: Schema hasn't been registered for model "Users". 我的代码只是基本的填充function的实验。 它看起来像这样: 我定义了模式: var user = mongoose.Schema({ userName: String }); var client = mongoose.Schema({ fk_user: { type: mongoose.Schema.ObjectId, ref: 'Users' }, name: String }); 我创build模型: var UserModel = mongoose.createConnection('localhost','fixDB').model('Users', user); var ClientModel = mongoose.createConnection('localhost','fixDB').model('Clients', client); 我保存了一个实例: var user1 = new UserModel({userName: […]

express.js + socket.io – 如何从客户端应用程序初始化服务器上​​的会话

我必须创build2个应用程序。 一个应用程序是使用express.js和socket.io的服务器。 第二个应用程序是一个简单的客户端(静态html + js文件),不能从服务器express.js实例中提供。 只有当express.js路由被访问时,才使用cookie express.sid来build立会话。 我使用socket.io从客户端(即http://client.addr )连接到服务器(即http://server.addr:0000 )时出现问题 – 我无法build立express.js会话因为我没有访问服务器路由,我没有express.sid会话cookie。 我结束了与客户端尝试发送AJAX调用服务器/set-session-cookie路由希望我可以识别会话,发送encryptionsessionID cookie和启动socket.io连接挂钩到在以前的调用中创build的会话,但AJAX调用后不会发送cookie。 服务器路由: app.all('/set-sesion-cookie', function(req, res){ res.header('Access-Control-Allow-Origin', req.headers.origin); res.header('Access-Control-Allow-Credentials', 'true'); res.cookie('express.sid2', req.sessionID, {signed: true}); res.send(200); }); 客户电话: $.post('http://127.0.0.1:3000/set-sesion-cookie'); 第二个想法是只发送包含encryption会话ID的string,并使用JS创buildcookie,但是我找不到encryptionalgorithm是什么res.cookie('express.sid2', req.sessionID, {signed: true}); 做手动。 这种方法是否有效? 如果还有其他方法可以达到这个目的,请告诉我。 TIA。

尝试安装nodemon时发生错误

当我尝试安装Nodemon时,出现此错误消息 pm http GET https://registry.npmjs.org/nodemon npm http 304 https://registry.npmjs.org/nodemon /usr/local/bin/nodemon -> /usr/local/lib/node_modules/nodemon/nodemon.js npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer generator-angular@0.5.1 wants generator-karma@~0.6.0 npm ERR! System Darwin 13.0.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "nodemon" npm ERR! cwd /Users/stephenadams npm ERR! node -v v0.10.18 npm […]

如何记住客户端的数据?

我有一些对每个客户都是独一无二的信息。 这不是login信息,而只是客户端的一些通用数据 – 例如,说客户端的地址。 现在,当客户端第一次连接服务器时,我会读取客户端的地址。 随后,每当客户端向服务器发出请求时,我想使用从第一个请求中读取的地址。 我该怎么做呢? 我的意思是,如何在服务器本身上存储客户端的一些信息,以便每次请求时,我不必再次读取(从数据库)地址,而是直接从说,全局variables或类似的一个请求头或这些行上的东西…我怎样,附加到每个客户端的地址,以便从客户端的未来请求,我可以直接从客户端的请求本身读取地址信息,而无需再次查询数据库…

在快速应用程序中使用Docpad的渲染引擎

我正在尝试使用docpad来处理快速应用程序中的呈现,但是当试图访问/contact请求只是看起来无限期地挂起。 这是我的申请: var express = require('express'); var http = require('http'); var app = express(); var cons = require('consolidate'); var server = http.createServer(app).listen(process.env.PORT || 9778); app.use(app.router); // Add DocPad to our Application var docpadInstanceConfiguration = { // Give it our express application and http server serverExpress: app, serverHttp: server, // Tell it not to load the […]

使用node.js和mongoose填充另一个引用文档的数据

我正在构build一个运行课程的应用程序。 每门课程都有单位。 每个单元最后都有页面,问题和测验。 我以为我有一切正确的设置,但如果我查看单位列表,它只显示ID,并不填充。 楷模: var unitSchema = new Schema({ number: Number, title: String, unitCode: String, pageCount: Number, time: Number }); var pageSchema = new Schema({ number: Number, title: String, content: String, courseQ: Boolean, unitCode: String }); var courseQuestionSchema = new Schema({ question: String, choices: [], correct: Number }); var quizSchema = new Schema({ code: […]

app.render 在Node.js中使用Express与Gaikan

res.render工作正常: res.render('main', function(err, html){ // Returns '<html></html>' contained inside of 'views/main.html' console.log(html); }); 但是我的app.render: app.render('main', function(err, html){ // Returns undefined console.log(html); }); app.render返回的错误是: [TypeError: Cannot set property 'content' of undefined] 我假设它正在尝试设置data.content(作为更改的一部分),但是我不确定,而且我不知道问题是什么。 帮助将不胜感激。 堆栈跟踪: http : //puu.sh/5qGSq.png configuration: var express = require('express'), gaikan = require('gaikan'); app.configure(function() { app.engine('html', gaikan); app.set('view engine', 'html'); app.set('views', __dirname + '/views'); […]

mongoose – 如何指定和删除依赖关系?

使用MongoDB和Mongoose,如何将对象标记为从属于它们的关系,以便如果父对象被删除,则所有依赖于它的子对象也将被删除。 例如,如果作者被删除,我怎样才能让作者的所有文章自动删除? var AuthorSchema = new Schema({ created: { type: Date, default: Date.now }, name: { type: String, default: '', trim: true } }); var ArticleSchema = new Schema({ created: { type: Date, default: Date.now }, title: { type: String, default: '', trim: true }, content: { type: String, default: '', trim: true }, author: […]

ExpressJS中的“VARCHAR”和服务器硬盘中的映像存储图像在数据库中的位置

我如何在ExpressJS中做到这一点? 使用VARCHAR数据types而不是任何BLOB或其他binary数据types来存储图像在数据库中的位置。 然后将该映像存储在服务器harddisk中可能的映像空间/public/images/ 我是新来expression。 任何示例来实现这个?

我可以在subprocess中定义快速路由吗?

所以我运行了一堆写在节点上的聊天机器人,没什么太刺激的。 不过,我最近决定给他们自己的小网页以graphics方式显示信息。 要做到这一点,我想我只是运行快递。 然而,我用一个包装文件来运行我的机器人,它将每个chatbot作为一个subprocess启动。 这使得使用expression有点棘手。 目前,我在wrapper.js文件中启动Express服务器,如下所示: var express = require("express"); var web = express(); web.listen(3001); 然后在subprocess中,我这样做: var express = require("express"); var web = express(); web.get("/urlforbot",function (req,res) { res.send("Working!"); }); 但是,当我导航到:3001/urlforbot ,我得到Cannot GET /urlforbot 。 任何想法我做错了,如何解决这个问题? 编辑 :这是我完整的包装文件: http : //snippi.com/s/3vn56m2 编辑2 :这是我现在正在做的。 我将每个机器人托pipe在自己的端口上,并将这些信息存储在configuration中。 这是我正在使用的代码,它似乎工作: web.get("/"+cfg.route, function (req,res) { // forward the data res.redirect('http://url.com:'+cfg.port+"/"+cfg.route); });