Tag: 表示

Mongoose更新子文档数组

我可以更新匹配我的更新查询数组中的所有子文档? 这里是收集元素的例子: { x: 1, myarray: [ { a: 1, b: 2, }, { a: 1, b: 4, } ] } 然后我写这样的查询: MyModel.update({x: 1, myarray.a: 1}, {$set: {"myarray.$.b": 3} }, function(err) { }); 它只更新myarray中的第一个子文档。 在文档中写道,这种查询只更新第一个文档。 我想知道是否有更新数组中所有匹配的子文档的方法。 提前致谢。

节点JS获得完全加载的HTML页面

我想在JavaScript完全加载后使用Node JS从url获取html页面内容,或者获取基本html,然后运行所有JavaScript文件以实现最终内容。 例如,假设有一个基于Angular JS的网站,所以基本的html很简单,但是在页面中加载了所有的JavaScript代码之后,页面内容就完全不同了。 我想在服务器上获得最终的内容来find它的内容。 有任何想法吗?

Node.js参数化的路线 – 好的或坏的做法?

这是我的代码: router.delete('/delete-:object', function(req, res) { var query; var id = req.body.id; switch (req.params.object) { case 'news' : query = queries['news_delete']; break; case 'member' : query = queries['member_delete']; break; case 'account' : query = queries['account_delete']; break; default : res.sendStatus(404); return; } connection.query(query, id); res.sendStatus(200); }); 这种方法是否被认为是很好的做法,还是应该为我所有的路由创build单独的router.delete函数? 请解释为什么。

成功,但依然使用failureRedirect – 护照

app.post('/signup', passport.authenticate('local-signup', { successRedirect: '/', failureRedirect: '/signup', failureFlash: true })); 这是路线。 passport.use('local-signup', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function(req, email, password, done) { process.nextTick(function() { User.findOne({ 'local.email': email }, function(err, user) { if(err) return done(err); if(user) { return done(null, false, req.flash('signupMessage', 'That email is already taken')); } else { var newUser = […]

使用KeystoneJS CMS为AngularJS应用程序生成html文件

我是AngularJS和KeystoneJS的新手,我非常感谢你的帮助。 感谢你们。 我已经为我的Angular应用程序使用Express的express.static做了一个服务机制。 在这一点上,我的应用程序可以成功地从不同的位置加载到以下代码的特定页面的常规HTML文件。 controller.js: .controller('Ctrl', function ($scope, $http) { $scope.html = "testing"; $http({ url: 'content/content1.html', method: 'GET', responseType: 'text' }).success(function(data) { $scope.html = data; }).error() $scope.message = 'Hello'; }); page.html中: <div ng-bind="html"></div> routing.js app.use(express.static(__dirname + '/content')); 接下来,我想从独立的KeystoneJS CMS将内容加载到我自己的Angular应用程序中的特定页面。 基本上,我只是希望能够使用KeystoneJS编辑一些内容,然后在我的独立的Angular应用程序中自动发布内容。 1)我怎样才能从一个HTML页面的forms获得从Keystone导出的页面?

如何使用Krakenjs与Angularjs?

在互联网上krakenjs周围的资源非常less,我找不到正确的资源,显示如何使用angularjs + nodejs + krakenjs做单页面应用程序。 你能告诉我怎么一起使用这些东西,或者指点一些例子或者资源吗?

无法在Express中设置HTTPS服务器

我试图设置我的express应用程序使用https 。 这是我到目前为止: var fs = require('fs'); var http = require('http'); var https = require('https'); var app = require('./app'); var port = process.env.PORT || 8080; var credentials = { key: fs.readFileSync('./ssl/private_key.pem', 'utf8'), cert: fs.readFileSync('./ssl/certificate.pem', 'utf8'), ca: [ fs.readFileSync('./ssl/certificate_chain_1.pem', 'utf8'), fs.readFileSync('./ssl/certificate_chain_2.pem', 'utf8') ] }; https.createServer(credentials, app, function (req, res) { res.writeHead(200); res.end('HTTPS server started on port […]

Krakenjs如何将除api调用之外的所有请求路由到index.html?

如何将所有请求路由到index.html,除了一些API调用和一些页面。 因为kraken路由的方式是基于控制器的目录,所以如果我这样做 // /controller/index.js app.get('*', function(){ res.sendFile(__dirname + '/public/index.html'); }); kraken会把我所有的请求路由到index.html,包括/ controller / api目录下的api调用。 所以我怎样才能让kraken把/ api这样的请求路由到/controller/api/index.js,其余的到/public/templates/index.html?

连接build立后如何运行JavaScript代码?

作为一个Node.js新手我试图改变与 Nick Anastasov的Node.js和Socket.io示例的智能手机远程控制,以便不需要密码。 在原始源代码中, app.js文件在input一个web表单并且script.js开始它的主要任务之后发送{ access : 'granted' } ,例如取消网页: socket.on('access', function(data) { if (data.access === "granted") { // XXX Tried removing this line blurredElements.removeClass('blurred'); form.hide(); $(window).on('hashchange', function() { // …. }); socket.on('navigate', function(data) { // …. }); } }); 我已经改变了app.js,所以它根本不会发出access 。 然后,我尝试从script.js中删除只有行if (data.access === "granted") ,但这当然没有奏效:网页保持模糊,因为没有接收到事件了(不granted也不denied )。 我的问题是:我应该如何改变上面的代码,以便连接build立后运行? 我应该使用socket.on('connect')或socket.on('connection')或是同样的问题(因为没有stringconnect正在发送)? 更新: 正如Brad所build议的(谢谢!)我已经将script.js中的string从“access”改为“connection”,但是网页保持模糊 – 这里是完整的源代码: $(function() […]

当modelObject从数据库本身获得时,modelObject.save()是否只更新现有的数据库文档?

要使用演示该问题的示例,假定我有一个由以下模式定义的用户模型: var UserSchema = new Schema({ username: String, email: String } mongoose.model('User', UserSchema); 我知道要使用save方法更新用户,我可以查询用户,然后保存更改,如下所示: User.findOne({username: usernameTofind}, function(err, user) { //ignore errors for brevity user.email = newEmail; user.save(function(err) { console.log('User email updated') }); }); 但是,如果我尝试创build一个新的用户对象与完全相同的字段值(包括_id)是否有覆盖数据库文件的任何可能性? 我不会假设,因为从理论上讲,这意味着恶意用户可能利用不安全的API并覆盖现有文档(例如使用“创build新帐户”请求,这将不会/不能依赖于用户被authentication),但更重要的是,当我尝试使用请求工具(我使用邮差,但我敢肯定类似的curl命令就足够了)这样做,我得到一个重复的_id错误 MongoError: insertDocument :: caused by :: 11000 E11000 duplicate key error index 所以我只想澄清,更新现有文档的唯一方法是查询文档,修改返回的实例,然后调用该实例的save方法,或者使用静态update()。 这两者都可以通过要求authentication来保护。 如果有帮助,我上面提到了这个问题的动机,因为我想确保用户不能覆盖现有文档,如果公开暴露以下方法: userCtrl.create = function(req, res, next) […]