Articles of node.js

如何使用js将空数组保存到mongodb中

基本上我得到了我的应用程序运行,但我坚持一个问题:如果我传递一个包含一个空数组要保存的对象,该数组不会保存到数据库。 我不知道这是在js或mongo驱动程序中的问题,但为了保存空数组,我需要传递数组,如下所示: products: [''] 。 这是我的mongo文档的结构: _id: ObjectId(…), name: 'String', subcategories: [ { subcategory: 'string', products: [ { name: 'string' price: integer } ] } ] 所以在我的前端,我通过ajax调用将新对象推入子类别数组来获取整个文档。 新对象如下所示: {subcategory:'string', products:['']} 这工作正常,直到我需要在数组中插入一个新的对象:因为我抓住了整个对象,推新对象到数组,前一个看起来像这样: {subcategory: 'string'} 在这个过程中,失去了对products:[]数组的提及。 我怎样才能解决这个问题? 我需要能够在我的对象中有空的数组。 编辑 我在前端做了什么:用$.get返回了整个对象: var obj = _id: ObjectId(…), name: 'String', subcategories: [ { subcategory: 'Subcategory1', products: [ { name: 'string' […]

Sails.js如何加载会话并创build,检查,销毁?

在configurationsession.js我已经启用redis之前,我已经安装了这两件事情… npm安装connect-redis npm install express adapter: 'redis', // // on localhost is expected. // Read more about options at: https://github.com/visionmedia/connect-redis // host: 'localhost', port: 6379, ttl: 3600, db: 0, pass: '', prefix: 'sess:' 在控制器2中 //分配会话中的值并redirect到controller1 req.session.error =“category not found”; //错误TypeError:无法设置未定义的属性“错误” module.exports = { load_word: function(req, res){ var async = require('async'); var express = require('express'); var […]

用对象更新/扩展mongoose文件

我有一个REST API客户端,我发送和接收mongoose文档作为普通的对象,通过JSON序列化。 这些文件不是太复杂,但确实包含embedded对象和数组,如: var doc = mongoose.Schema({ doc_info: { current: { type: Boolean, required: true, default: true }, edited_by: { type: ObjectId, ref: 'User' }, create_date: { type: Date, required: true, default: Date.now() }, save_date: { type: Date, required: true, default: Date.now() }, prev_versions: [{type: ObjectId, ref: 'DOC'}] }, ix_info: { runid: { type: String, […]

HTTP伪stream,如何获取范围从开始参数

我们正在为nodejs中的MP4文件进行HTTP伪stream式传输。 对于HTML5,这非常简单,因为它可以与内容范围标题一起使用,但是对于Flash而言,通常会将startparameter passing到包含要跳过的秒数的请求。 有谁知道什么逻辑会将秒转换为字节的video,还有什么可能需要这个? 任何正确的信息将是一个巨大的帮助。 谢谢!

如何依赖于私人包在node.js?

我想创build一个私人(密码保护)git仓库中的模块,但也可以有不同的项目依赖于该模块(package.json中的依赖项)。 如何在使用npm install时使用私有模块? 请问npm install会问你一个特定版本库的密码吗? 在过去,每当我在npm中看到一个密码提示时,它都会提示input密码(可能是多次),但是输出只是在提示符上显示。 这个经历让我担心npm不能很好地处理这个案例。 那么最好的方法是什么呢?

如何使用Grunt在不同的文件夹中检测相同的文件名?

我需要用grunt编写一个concat脚本。 这是我的样板: ___js |____dist | |____vents | | |____carousel.js | | |____compare.js | | |____style.js |____src | |____events | | |____carousel.js | | |____compare.js | | |____styles.js | |____handlers | | |____carousel.js | | |____compare.js | | |____style.js 我怎样才能知道concat任务,在事件和处理程序文件夹中连接具有相同名称的文件,并将每个单独的连接对放在dist / vents目录中?

自制软件安装节点 – 花费时间太长

是否需要永远安装使用Homebrew的node.js? 我尝试了好几次,甚至让它一夜之间跑完了,从来没有完成过。 我现在正在以冗长的模式再次做这件事,它正在打印无尽的“叮当声”。 这不是错误,但我做错了什么,或者我应该只使用包安装程序? 在Retina MacBook Pro上运行OS X 10.8(2.4 GHz,16 GB RAM)

Node.jsfile upload到Gridfs – 错误:请求中止

我有一个问题,通过gridfs-stream节点模块将大file upload到Gridfs。 我试图上传较小的文件,它的工作很好,但是当我尝试上传较大的文件(〜2GB和更多)的node.js服务器给我这个错误: Error: Request aborted at IncomingMessage.onReqAborted (D:\ProjectName\node_modules\express\node_modules\connect\node_modules\multiparty\index.js:131:17) at IncomingMessage.EventEmitter.emit (events.js:92:17) at abortIncoming (http.js:1911:11) at Socket.serverSocketCloseListener (http.js:1923:5) at Socket.EventEmitter.emit (events.js:117:20) at TCP.close (net.js:466:12) 我的代码如下,这也是在本地节点服务器上完成的: //crud.js file var config = require('./config.js') var fs = require('fs') var Grid = require('gridfs-stream'); var gfs = Grid(config.db, config.mongo); exports.uploadFile = function (req, res) { var tempfile = req.files.filename.path; var […]

将文件从一个节点服务发布到节点web服务

我有以下客户服务: var request = require('request'); var fs = require('fs'); var file = "c:\\log.txt"; var url = "http://localhost:8080/upload"; fs.createReadStream(file).pipe(request.post(url)); 这是服务器上的代码: var express = require('express'); var app = express(); app.use(express.bodyParser()); var fs = require('fs'); var sys = require('sys'); app.listen(8080); app.post('/upload', function (req, res) { console.log(req.files); }); 我想最终保存在服务器上收到的文件。 现在,当我运行服务,然后客户端,服务器logging一个空的数组 – 而不是上传的文件。 我如何解决这个问题? 更新:服务器代码工作,因为我成功地使用Fiddlertesting它。

Express路由与AngularJS路由冲突。

在Express中有以下性质的路由代码: app.get("/profile/:param", function (req, res) 这与AngularJS提供的path一致。 例如,当载入nature /profile/someparam#view1的Angular视图时,新的URL模式被Express(它假定它是/profile/<someparam>types) /profile/<someparam> 。 这导致与view1关联的控制器被无限调用,从而导致页面崩溃。 我如何解决这个问题?