Articles of 快速

存储令牌推送通知

我们的项目目前有一个Node jS后端,我们想为iOS实现推送通知。 我们做了一些调查,发现我们必须将APN提供给我们的令牌存储在我们的数据库中,以便将推送通知发送到特定设备。 有人可以证实这一点或有没有更好的方式发送通知? 其次,我还发现,当设备通过软件更新,这会改变他们的令牌,这意味着我们必须有能力更新我们的数据库中的令牌,因为它会经常改变。 这也是非常重要的。 还有其他的时候令牌可能会改变吗? 最后,Node中有没有好的库来发送推送通知? 提前致谢!

node.js api保持代码干燥

我想知道,当用数据库调用开发node.js api时,保持代码干燥的最佳实践是什么。 我好像有很多重复的代码。 例如,看看这个: app.get('/api/users_count', function (req,res) { pool.connect(function(err, client, done) { if(err) { return console.error('error fetching client from pool', err); } client.query('SELECT count(*) FROM users;', function(err, result) { done(); if(err) { return console.error('error running query', err); } res.json({"users count": result.rows[0].count}); }); }); }); 和这个: app.get('/api/users/:id', function (req,res) { pool.connect(function(err, client, done) { if(err) { […]

nodejs api和swift应用程序之间的连接

我试图创build一个API,我的iOS应用程序连接到。 然而,我不断收到提示, error: not found当我运行post请求,并设置参数id, name, birth and country 。 但是,如果我只是在邮递员运行url/users/14253/test/10-20-1992/denmark它工作正常,所以我有点困惑,我做错了什么? API路线 router.post('/:id/:name/:birth/:country', function(req, res, next) { var params = req.params; var accessHeader = req.headers; var user = new User({ _id: params.id, name: params.name, birthday: new Date(params.birth), country: params.country }); user.save(function(err) { if (err) { res.send(err); } else { res.json({ message: 'User created!' }); } […]

Facebook护照策略返回500错误

我试图做一个login或login用户使用passport.js facebook战略连接他们的帐户与Facebook,并保存他们的profile photo, id, gender, timeline cover and token根据userSchema(在user.js模型如下所示。 我尝试了很多组合,但仍然从Facebook获得500错误,或者如果显示Facebook身份validation,Facebook无法返回(代码组合,我试过)并保存该对象。 PS : 我在Facebook上input了正确的callbackurl PPS:请参阅我的更新routes.js和更新下面的passport.js 。 这是我的routes.js文件: app.get('/auth/connect/facebook', passport.authenticate('facebook-connect', { authType: 'rerequest', scope: ['id', 'cover', 'gender', 'photos'] })); app.get('/auth/connect/facebook/callback', passport.authenticate('facebook-connect', { successRedirect: '/profile/configure', failureRedirect: '/profile/congigure' // failureFlash: true })); 我的facebook-connect的passport.js文件: passport.use('facebook-connect', new FacebookStrategy({ clientID: configAuth.facebookAuth.clientID, clientSecret: configAuth.facebookAuth.clientSecret, callbackURL: configAuth.facebookAuth.callbackURL, profileFields: ['id', 'cover', 'gender', 'photos'], enableProof: true […]

对于Node.js应用程序,使用带有Express-Handlebars的Angular

我有一个运行Express的node.js应用程序,并将模板框架用作句柄。 我最近开始学习Angular并将其集成到我的node.js应用程序中。 唯一的问题是,明确的句柄和angular度的标记是相同的。 这两个框架都使用{{}}。 我做了一些研究,发现这个Stackoverflow的问题: 使用Express Handlebars和Angular JS 接受的答案build议使用interpolateProvider更改标记符号。 我实现了这一点,它不适合我(我已经在这个答案下评论)。 我的代码如下所示: main.handlebars <!DOCTYPE html> <html ng-app="myapp"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>GETTING STARTED WITH Angular</title> <meta name="description" content="An interactive getting started guide for Brackets."> <link rel="stylesheet" href="/css/style.css"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-route.min.js"></script> <script> var app = angular.module("myApp", []); app.config(function($interpolateProvider) { $interpolateProvider.startSymbol('//'); $interpolateProvider.endSymbol('//'); }); app.controller('DemoController', function() […]

ReferenceError:请求没有在NodeJS Session中定义

我是NodeJS中的新成员,我正在尝试使用会话。 但是我坚持这个错误。 任何forms的帮助表示赞赏。 代码 : – var express = require('express'); var jsonFile = require('jsonfile'); var NodeSession = require('node-session'); var router = express.Router(); session = new NodeSession({secret: 'Q3UBzdH9GEfiRCTKbi5MTPyChpzXLsTD', 'lifetime': 60 * 1000, 'secure': true, 'encrypt': true}); session.startSession(request, response, function () { // server handler goes here // req.session available }); function restrict(req, res, next) { if […]

按价格sortingMongodb数据

目标:我试图find一种方法,让用户按照最大和最小价格在一个索引页面上对租赁进行sorting。 我的问题是我能弄清楚如何使它工作的唯一方法是为低价格和高价格创build两个单独的页面。 我只想要一个主要的索引。 下面显示的pricelow页面过滤数据从低价格到高价格 app.get("/pricelow", function(req, res){ Listings.find({}).sort({price: 1}).exec(function(err, allListings){ if(err){ console.log(err); } else { res.render("pricelow",{listings:allListings}); } }) }); //下面显示的价格高的页面将数据从高价格过滤到低价格 app.get("/pricehigh", function(req, res){ Listings.find({}).sort({price: -1}).exec(function(err, allListings){ if(err){ console.log(err); } else { res.render("pricehigh",{listings:allListings}); } }) });

如何从服务器端的多个input字段(Express.js / Node.js)中查找数据?

我有一个具有多个描述文本字段的表单,文件select字段并提交跨域请求(CORS变体)button: <form class="upload" id="upload_form" enctype="multipart/form-data" method="post" action="http://localhost:3001/upload/1234567890"> <div class="row-fluid"> <div class="span5 row-fluid" id="description" style="margin-left:0px;"> <div> <label>Title</label> <input class="span12" type="text" placeholder="Title" id="description_title" name="description_title"/> <label>Author</label> <input class="span12" type="text" placeholder="Author" id="description_author" name="description_author"/> <label>Tags</label> <input class="span12" type="text" placeholder="Tags" id="description_tags" name="description_tags"/> <label>Description</label> <textarea class="span12" id="description_textarea" name="description_textarea" rows="5" style="resize:none"></textarea> <div id="buttons" class="row-fluid" style="margin-top: 5px"> <div class="span12"> <span class="span5 btn btn-primary btn-file" […]

尝试遍历一个数组并为每个数组添加一个get函数

我想遍历样式标签,并为每个写一个GET函数。 问题是GET函数正在写入'styleTags [i]'的引用,而不是将'styleTags [i]'转换为适当的标签。 var styleTags = ['cont', 'ecce']; for (var i = 0; i < styleTags.length; i++) { app.get('/photos-' + styleTags[i], selectNav, function(req, res) { getDynPhotos(req, res, styleTags[i]); }); }

async.times函数不会触发callback

我正在尝试使asynchronous正常工作。 在这个例子中,我想创build并保存一些mongoose对象,并在作业完成时获得callback。 即使对象保存在数据库中,callback也不会触发。 控制台日志也不显示。 谁能帮我找出我错过了什么? var number_of_objects = 5; async.times(number_of_objects, function(n, next){ var myObject = new Object({ random_string : Math.random().toString(36).substring(7), isActive: false }); myObject.save(n,function(err,object) { console.log("saved"); console.log(n); next(err,object); }); },function(err, objects) { console.log(objects); res.sendStatus(200); }); 提前谢谢了