Articles of node.js

函数返回一个函数的值

import.js exports.getConfig = function() { return api.getConfig(); }; test.js // Aanmaken lightBridge obj = reflector.getObj(); console.log(obj); // Toon alle lichten obj.getConfig().then(function(config) { console.log(config); }).done(); 在最后一个片段中,它使用了当我调用getConfig()的函数,我想要在variablesconfiguration中的输出。 现在的问题是,当我想logging我收到的variablestesting未定义。 如果我console.log(config)而不是返回configuration; 它完美的作品。 看起来很奇怪。 当我想使用它的结果就像varia.getConfig()=> config的输出。

Strapi – 使用环境variables进行configuration

使用strapi 1.5.4 。 有没有可能用环境variablesconfigurationstrapi? 如果没有,如何configurationstrapi而不提交/暴露您的数据库证书和其他秘密? module.exports = { "orm": { "adapters": { "disk": "sails-disk", "mysql": "sails-mysql" }, "defaultConnection": "default", "connections": { "default": { "adapter": "disk", "filePath": ".tmp/", "fileName": "default.db", "migrate": "alter" }, "permanent": { "adapter": "mysql", "user": process.env.DB_USER, "password": process.env.DB_PASSWORD, "migrate": "alter" } } } };

Node.JS中的架构重要吗?

我正在为一个我刚刚构build的表单创build一个巨大的模式…据说我的模式顺序必须模仿forms顺序,还是只能按照我把它们放入的顺序input所有的input? 下面的例子。 可以这样吗? // link to mongoose var mongoose = require('mongoose'); // define the article schema var mapSchema = new mongoose.Schema({ created: { type: Date, default: Date.now }, dd1: { type: String, default: '' }, dd2: { type: String, default: '' }, com1: { type: String, default: '' }, com2: { type: String, default: '' […]

使用UpdateHandler在Keystone.js中上传LocalFile

怎么会这样做呢? 在这里 ,有人build议在profileImage._.uploadImage(file, update, callback)使用UpdateHandler或列表项的下划线方法来处理file upload,但它们使用S3 File而不是LocalFile 。 首先尝试使用下划线方法,但似乎不像上述问题那样工作。 在其他网站上有很多分散的文档,但都显得过时(有些人build议使用不再存在的LocalFile方法),并包含许多断开的链接。 查看js(中间件)代码: view.on('post', { action: 'edit-profile' }, next => { let updater = locals.user.getUpdateHandler(req, res, { errorMessage: 'There was an error editing your profile:' }); updater.process(req.body, { flashErrors: true, logErrors: true, fields: 'profileImage, email, name, password' }, err => { if (err) { locals.validationErrors = err.errors; […]

Facebook的信使,如何处理发送的位置

根据本指南 ,它描述了我们如何发送消息和处理button文本等。 但是,当用户发送到geolocation机器人,我的webhook接收它是这样的: { sender: { id: 99999999999999}, recipient: { id: 99999999999999 }, timestamp: 99999999999, message: { mid: 'mid.9999999:999999999', seq: 231, attachments: [ [Object] ] } } 位置作为attachments数组中的某种对象发送到webhook。 当我在我的代码中,我试图让他们这样的: event.message.attachments[0].longitude event.message.attachments[0].latitude 我弄undefined明白 如何获取用户发送的位置的经纬度? 文档中没有对此的描述。 UPDATE 经过一番尝试,我能够得到它的所有属性。 当用户发送他们的位置我得到这个结构: {url: https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D43.230507%252C%2B76.945031%26FORM%3DFBKPL1%26mkt%3Den-US&h=vAQHe08Kz&s=1&enc=AZPRe3VQFnThq3_jdPFg8R4WWUZxWJA1XjbVvVua4fD0PNpt2u26hvS-noUEU55qQNC6Wm9hNGwpGntrUgu1nx7KsSIKRbGQyKEXueAImV3Kyg} 这是巨大的URL 。 如果您通过浏览器打开此链接,则会打开Bing地图并显示此位置。 这些数据很难处理。 它强制用户编写自己的parsing器。

来自信号量的ZP4的地址validation

我们有一个应用程序,我们正在考虑添加地址validation数据上我们目前的数据。 我们的堆栈主要是node.js和MongoDB。 我寻找一个具有成本效益的解决scheme,我遇到了Semaphore ZP4。 但根据他们的文档,他们提供的软件只能在Windows上运行,并在本机上运行。 有没有人有任何经验,并试图将这与一个node.js应用程序集成,是否有另一个更好的select?

GCM注册的设备接收两种types的通知

我使用Google开发人员站点上的示例项目注册了我的Android设备,并且只将该configuration文件添加到项目中。 现在,当我使用node-gcm发送来自我的nodeJS服务器的通知时,我收到两种types的通知: 如果我在./gradlew run -Pmsg="<message>"命令来testing它,那么通知“GCM消息”是默认的应用程序,但它不是空白的。 另一个通知“新聊天消息”是我打算发送的。 我的问题是,我想只收到不是空白的默认通知。 我该如何解决? nodeJS服务器的代码: message.addNotification('title', 'New Chat Message'); message.addNotification('icon', 'ic_launcher'); message.addNotification('message', 'TEST MESSAGE'); message.addNotification('body', name + ": " + msg); sender.send(message, {registrationTokens: regTokens}, function (err, response) { if (err) console.error(err); else console.log(response); }); 处理消息的Android APP代码: public void onMessageReceived(String from, Bundle data) { System.out.println("MyGcmListenerService.onMessageReceived"); String message = data.getString("message"); if(data.containsKey("body")){ System.out.println("Contains"); } […]

npm节点模块中的对等关系问题

我已经遇到了一些问题,在我的项目安装grunt相关的节点模块依赖关系, 我想用一个命令安装选定的依赖关系,所以我在下面使用, npm install grunt grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace grunt-git –save-dev 有错误,像“grunt-exec@0.4.6需要grunt@~0.4同行,但没有安装。 所以根据谷歌的反馈,发现我们可以像下面的修复一样对依赖版本进行硬编码, npm install grunt@~0.4 grunt-contrib-jshint grunt-cli grunt-contrib-watch grunt-exec grunt-contrib-symlink grunt-contrib-clean grunt-contrib-copy grunt-text-replace grunt-git –save-dev 它已暂时解决了这个问题,但现在我得到一个错误,像“grunt-git@1.0.0需要grunt@~1.0.1同行,但没有安装。 所以看起来,咕噜插件需要不同版本的相同的依赖 – 咕噜(在我的情况)。 逐个安装插件而不是集群也不能解决问题

套接字IO房间和名单

我试图显示一个用户列表,并计算一个MEAN栈应用程序中的一个聊天室中的用户数量。 不幸的是,我遇到了一个非常严重的问题。 每当新用户进入聊天室时,用户数量都会重置。 即使新用户进入房间,我希望聊天室中的当前成员仍然坚持。 这里是服务器端代码: io.on('connection', function(socket){ var users = []; var username = ''; var room = ''; console.log('a user has connected'); socket.on('join-room', function(data){ socket.join(data.room); room = data.room; }); socket.on('request-users', function(){ socket.to(room).emit('users', {users: users}); console.log(users); }); socket.on('add-user', function(data){ io.to(room).emit('add-user', { username: data.username }); username = data.username; users.push(data.username); }); socket.on('disconnect', function(data){ console.log(username + ' has […]

使用node.js从json文件中获取键值

我试图从这个JSON文件中获取密钥,但不知道如何得到它 var request = require('request'); request('http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452', function(error, response, data) { if (!error && response.statusCode == 200) { //console.log(data) } })