Tag: express

backbone.js和express:遇到一个查询string按字段search一个mongodb集合的麻烦

我是新来的骨干,快递和mongodb。 我想传递一个查询string按字段searchMongoDB集合。 我做错了什么。 如果我从路由器注释掉“获取”,则find页面。 如果我尝试获取,那么我得到一个页面未find错误。 我试图隔离它的中断,但骨干架构仍然让我感到困惑。 提前致谢。 (我打赌这是在我的mongodb调用语法问题)克里斯汀 这是我的代码。 这个URL应该返回“type”= 3的集合。 localhost:8888/#content/3 型号/ models.js: window.Content = Backbone.Model.extend({ urlRoot: "/content", idAttribute: "_id" }); window.ContentCollection = Backbone.Collection.extend({ model: Content, url: "/content" }); 意见/ content.js window.ContentListView = Backbone.View.extend({ initialize: function () { this.render(); }, render: function () { //return this; this.$el.append('<ul class="thumbnails">'); this.collection.each(function(model) { this.$('.thumbnails').append(new ContentView({model: model}).render().el); }, […]

在mongodb中插入数据时添加一个条件

基本上我想检查数据库中插入数据(即使用本地mongodb驱动程序)之前是否存在特定的数据,所以我试图使用collection.findOne()检查数据是否存在,如果属性的属性为null collection.insert()执行。 显然我的代码不按照逻辑工作,请有人启发我! 我的一些代码: exports.addUser = function(req, res) { var twitterId = req.body.provider; var userEmail = req.body.email; db.collection('users', function(err, collection) { collection.findOne({'email':userEmail }, function(err, item){ if(item.email === null){ collection.insert({ 'email': userEmail, 'provider': { 'twitter': { 'id': twitterId } } }, function(err, result) { if (err) { res.send({'error':'An error has occurred'}); } else { console.log('Success: ' […]

将用户直接上传到Amazon S3

在过去的几天里,我一直在努力工作。 基本上我有一个HTML格式的表单,它有一个type="file"input。 我希望这个文件被发送到nodejs,并直接stream到Amazon S3。 通过这种方式,我将在我的服务器上使用更less的存储空间(想象一下,如果100个人上传1g,最后我的服务器将有100g),所以如果我stream,我会占用一点点时间 有关如何与快递做到这一点的提示?

如何在一个快速/mongoose应用程序中正确地构造数据库调用?

什么是从Express访问MongoDB数据库的正确方法? 现在,我包括我的数据库处理程序db.js ,它包含db.js mongoose.connect( 'mongodb://localhost/db' ); 每次我需要做一个数据库调用。 我应该使用相同的连接,并通过callback传递我的数据库对象,或者我可以每次只包括我的数据库文件? 换句话说,是mongoose.connect总是重新使用相同的连接? 编辑 :我的源代码是公开的,我对nodejs / express应用程序相当新,我不知道我的应用程序是否正确构造…

在node.js中定制validation消息

我是Node.js的新手,并且在node.js.中定制validation消息时遇到了问题。我使用CRUD操作创build了一个使用Compound JS的简单应用程序。 在我的应用程序中有一个名为“ID”的字段。 “id”字段只接受整数值。 然后我通过在model / user.js中使用以下代码来validation该字段。 module.exports = function (compound, User) { var num = /^\s*\d+\s*$/; User.validatesFormatOf('id', {with: num, message:"is not a number"}); }; 通过使用上面的代码,它工作正常。 但是我也想检查一下这个字段是否为空。 然后我稍微改变一下代码。 修改后的代码如下所示: module.exports = function (compound, User) { var num = /^\s*\d+\s*$/; User.validatesFormatOf('id', {with: num, message: {blank: "can't be blank", with: "is not a number"}}); }; 然后validation消息,如果该字段为空,将显示为“Id不能为空”。 但是,当我input除数字以外的id字段中的值时,validation错误消息将是“Id […]

使用json文章的摘要authentication的curl命令

(使用node.js,express,passport-http) 我有一个POST路由做摘要身份validation,试图应用程序JSON的内容types。 我可以用摘要命中GET路由,没有问题,我可以使用基本身份validation来打开POST路由,但是当我尝试使用摘要身份validation执行POST时,会得到400 – 错误请求。 它看起来像curl把内容types放在初始摘要请求(内容长度为0,所以它知道足够的不发送初始digest-auth请求的JSON正文),我的一方(expression)失败无效的JSON(空体): $ curl -v –digest -X POST –data @body.json –user org2user2:lameduck -H "content-type: application/json" http://127.0.0.1:3002/user * About to connect() to 127.0.0.1 port 3002 (#0) * Trying 127.0.0.1… * connected * Connected to 127.0.0.1 (127.0.0.1) port 3002 (#0) * Server auth using Digest with user 'org2user2' > POST /user HTTP/1.1 > […]

如何使用socket.io更改用户的URL?

我使用node.js,socket.io和express来制作两个玩家的游戏。 为了避免来自第三人的影响,我想为准备玩的两个人生成特定的URL。 所以我的问题是,如何改变两个人来时的URL? 我现在在本地testing它。 在服务器端,我有服务器听一个端口。 var express = require('express'); var SocketIO = require('socket.io'); var http = require('http'); var path = require('path'); var app = express({ views: path.join(__dirname, 'views') }); app.use('/assert', express.static(path.join(__dirname, 'assert'))); app.engine('html', require('ejs').renderFile); app.get('/', function (req, res) { res.render('home.html', {layout: false}); }); var server = http.createServer(app); var sio = SocketIO.listen(server); server.listen(8080); function(…){…} 在客户端,我有套接字连接到某个地方。 var […]

设置一个句柄帮助器,以快速返回每个请求的特定值

我有一个基于快递的应用程序,服务器端提供的句柄模板的HTML和一捆骨干资源。 理论上,客户端,应用程序就像服务器端发生的事情。 这在开发中是很好的,但是当节点服务器同时处理很多请求的时候,我们正在使用的帮助器的机制被定义/重新定义了中断 – 我们设置了帮助器(在这种情况下,login/不是login,但可能是任何东西),然后服务其余的请求asynchronous发生 – 我们不知道,也不能控制这将需要多长时间。 我已经发现这是因为服务器上的Handlebar实际上是一个全局的 – 所以每次请求进来时,被调用的帮助程序都是从那里请求的一个共享对象。 问题是,如何能够设置每个asynchronous请求帮助器返回特定的值,并没有被并发请求污染…? 这里有一个testing用例的要点 – 希望能够说明问题: https://gist.github.com/dazld/023df6e1da7a92387720 (如果不明白我要做什么,只是在评论中,我会写更清楚的东西)。 谢谢!

express.js应用程序不会回应

这里是一个快递服务器代码: var express = require('express'); var mysql = require('mysql'); var app = express(); app.use(express.bodyParser()); app.use(express.static('public')); var connection = mysql.createConnection({ host : 'localhost', user : 'someuser', password : 'somepassword', database: 'some_database' }); connection.connect(); app.get('/users/authenticate', function(req, res){ res.setHeader('Content-Type', 'application/json'); res.send({test:"test"}); res.end(); }); app.listen(3000); console.log('Listening on port 3000'); 现在,当我发出一个获取请求到这个API,我没有得到任何响应的networking控制台选项卡,虽然响应代码是200 OK。 请说明一下。 我期望JSON数据在这里。 这是我在我的控制台中得到的:

mongodb只更新特定的子元素

我的数据库结构如下所示: { "_id" : ObjectId("51e66873f6a6600436000001") ,"email" : "asd@asd.de", ,"attribute_group_a" : { "attribute_a" : "" ,"attribute_b" : "" ,"attribute_c" : "" ,"attribute_d" : "" }, ,"attribute_group_b" : { "attribute_subgroup_b_a" : { "attribute_a" : "" ,"attribute_b" : "" ,"attribute_c" : "" ,"attribute_d" : "" } ,"attribute_subgroup_b_b" : { "attribute_a" : "" ,"attribute_b" : "" ,"attribute_c" : "" […]