Tag: node.js

什么是nodejs的好消息队列选项?

寻找在一个小的web应用程序中使用消息队列,我正在与node.js构build。 我看着resque,但不知道这是适当的。 目标是通过使用socketio将通知推送到基于后端和其他客户端操作的客户端。 我可以用socketio做到这一点,但是我想也许一个正确的消息队列会使这个更清洁,我不必重新发明轮子。 那里有什么select?

永远节点/ usr / bin / env:节点:没有这样的文件或目录

我已经安装nodejs使用: apt-get install nodejs 然后我已经安装npm使用: apt-get install npm 然后我已经永远安装使用: npm install forever -g 现在我去我的项目/var/www/myproject 并试图forever start server.js运行forever start server.js 那么我得到以下消息: /usr/bin/env: node: No such file or directory 谁能告诉我发生了什么事?

Sequelize.js:如何使用迁移和同步

我已经接近准备推出我的项目了。 我有大的计划,推出之后,数据库结构将发生变化 – 现有表中的新列以及新表,以及与现有和新模型的新关联。 我还没有触及Sequelize中的迁移,因为我只有testing数据,我不介意每次数据库更改时清除。 为此,目前我正在运行sync force: true当我的应用程序启动时,如果我已经改变了模型定义,则为sync force: true 。 这将删除所有的表,并从头开始。 我可以省略force选项,让它只创build新表。 但是,如果现有的改变,这是没有用的。 所以一旦我join迁移,事情是如何工作的? 显然,我不希望现有的表格(其中的数据)被清除,所以sync force: true是不可能的。 在其他应用程序中,我已经帮助开发(Laravel和其他框架)作为应用程序部署过程的一部分,我们运行migrate命令来运行任何未决的迁移。 但是在这些应用程序中,第一次迁移有一个骨架数据库,数据库处于开发初期的一段时间 – 第一个alpha版本或其他。 因此,即使是晚会的应用程序的一个实例,也可以通过按顺序运行所有的迁移来一口气加速。 我如何在Sequelize中产生这样的“第一次迁移”? 如果我没有,那么应用程序的新实例将不会有骨架数据库来运行迁移,或者它将在开始时运行同步,并将使数据库处于新状态新的表格等等,但是当它试图运行迁移时,它们是没有意义的,因为它们是用原始数据库和每一个连续的迭代来logging的。 我的思考过程:在每个阶段,初始数据库加上每个迁移顺序应该等于(加或减数据)在sync force: true运行时生成的数据库。 这是因为代码中的模型描述描述了数据库结构。 所以也许如果没有迁移表,我们只运行同步并将所有的迁移标记为已完成,即使它们没有运行。 这是我需要做什么(如何?),或者是Sequelize应该自己做这个,还是我咆哮错误的树? 如果我在正确的领域,肯定应该有一个很好的方式来自动生成大部分的迁移,给定旧模型(通过提交散列?甚至每个迁移可以绑定到一个提交?我承认我在想在一个不可移植的以git为中心的世界中)和新模型。 它可以对结构进行区分,并生成将数据库从旧到新的数据转换后所需的命令,然后开发人员可以进行必要的调整(删除/转换特定的数据等)。 当我用–init命令运行sequelize二进制文件时,它给了我一个空的迁移目录。 当我然后运行sequelize –migrate它使我没有任何内容的SequelizeMeta表,没有其他表。 显然不是,因为该二进制文件不知道如何引导我的应用程序并加载模型。 我肯定错过了什么。 TLDR:我如何设置我的应用程序及其迁移,以便实时应用程序的各种实例可以更新,以及没有传统启动数据库的全新应用程序?

如何pipe理客户端的JavaScript依赖关系?

虽然有很好的解决scheme来pipe理服务器端的依赖关系,但我找不到满足我所有需求的客户端JavaScript依赖pipe理工作stream程。 我想要满足这5个要求: 以与npm的package.json或bower的bower.json类似的格式pipe理我的客户端依赖bower.json 它应该有灵活性指向git repo或实际的js文件(无论是在网上或本地)在我的dependency.json文件中较less知道的库(npm让你指向git仓库) 它应该缩小和命名空间所有库到一个单一的文件,如恩德 – 这是唯一的JS文件,我需要把我的<script>标签在客户端 它应该像BoxJS 4 (现在已经死了)一样支持CoffeeScript, 在浏览器中,我应该可以使用任何需要的样式: var $ = require('jquery'); var _ = require('underscore'); 或者更好的是,做headjs风格: head.js(['jquery', 'underscore', 'mylib'], function($, _, mylib) { // executed when all libraries are loaded }); 如果没有这样一个单一的工具存在,什么是最好的工具组合,即我可以结合使用诸如volo (或grunt )之类的工具链? 我已经研究了我在这里链接到的所有工具,它们最多只能满足我个人的要求。 所以,请不要再发布这些工具。 我只接受一个答案,它提供了满足我所有5个要求的单个工具,或者如果有人发布了一个具有多个工具链的具体工作stream程/脚本/工作示例,也可以满足我所有的要求。 谢谢。

在node.js应用程序中包含外部.js文件

我有一个app.js节点应用程序。 随着这个文件开始增长,我想移动一些其他的文件,我会“需要”或“包括”在app.js文件中的代码的一部分。 我正在尝试这样的事情: // Declare application var app = require('express').createServer(); // Declare usefull stuff for DB purposes var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectId = Schema.ObjectId; // THE FOLLOWING REQUIRE DOES NOT WORK require('./models/car.js'); 在car.js中: // Define Car model CarSchema = new Schema({ brand : String, type : String }); mongoose.model('Car', CarSchema); […]

如何在MongoDB中search对象的数组

假设mongodb文档(表格)'users'是 { _id: 1, name: { first: 'John', last: 'Backus' }, birth: new Date('Dec 03, 1924'), death: new Date('Mar 17, 2007'), contribs: [ 'Fortran', 'ALGOL', 'Backus-Naur Form', 'FP' ], awards: [ { award: 'National Medal', year: 1975, by: 'NSF' }, { award: 'Turing Award', year: 1977, by: 'ACM' } ] } and other object(person)s 我想find获得“国家奖章”的人,并且在1975年必须获得奖励。在不同年份可能有其他人获得这个奖项。 […]

错误:无法将用户序列化到会话中

嗨护照模块有问题,并表示。 这是我的代码,我只想使用硬编码的login进行第一次尝试。 我总是得到这个消息: 我search了很多,发现了一些post在stackoverflow,但我没有得到失败。 Error: failed to serialize user into session at pass (c:\Development\private\aortmann\bootstrap_blog\node_modules\passport\lib\passport\index.js:275:19) 我的代码看起来像这样。 'use strict'; var express = require('express'); var path = require('path'); var fs = require('fs'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var nodemailer = require('nodemailer'); var app = express(); module.exports = function setupBlog(mailTransport, database){ var config = JSON.parse(fs.readFileSync('./blog.config')); app.set('view […]

Node.js Mongoose.jsstring到ObjectId函数

有没有一个函数,使用mongoose把一个string变成一个objectId节点? 模式指定的东西是一个ObjectId,但是当它从一个string保存,mongo告诉我,它仍然只是一个string。 对象的_id例如显示为objectId("blah") 。

巴贝尔polyfill? 那是什么?

我刚开始使用Babel将我的ES6 JavaScript代码编译成ES5。 当我开始使用Promise时,它看起来不起作用。 Babel网站通过polyfills声明支持承诺。 没有任何运气,我试图添加: require("babel/polyfill"); 要么 import * as p from "babel/polyfill"; 与此同时,我会在我的应用程序bootstrapping上得到以下错误: 找不到模块'babel / polyfill' 我search了模块,但似乎我在这里错过了一些基本的东西。 我也尝试添加旧的和良好的蓝鸟NPM,但它看起来不工作。 如何使用Babel的polyfills?

节点:login文件而不是控制台

我可以configurationconsole.log以便将日志写入文件而不是在控制台中打印吗?