Tag: 表示

松弛斜线命令:设置机器人名称和图标

我试图做一个节点松散的机器人。 当我从Slack上路时, app.get('/testbot', testbot); 我打电话给testbot: testbot.js: postToSlack(botPayload, function (error, status, body) { console.log('successfully posted to slack'); }); 我将我的有效载荷对象发布到他们的Slack API中指定的Webhook URL:“ https://hooks.slack.com/services/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 ” function postToSlack (payload, callback) { var val = JSON.stringify(payload); request({ uri: 'https://hooks.slack.com/services/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&payload=val', method: 'POST' }, function (error, response, body) { if (error) { return callback(error); } console.log('RESPONSE', body); //takes forever, then eventually comes […]

使用信任代理在本地主机上自动获取IP地址

我已经启用trust proxy选项来获取远程客户端的IP地址。 当应用程序部署在远程服务器上时,我从req.ip得到正确的地址,但是当应用程序在localhost上运行时,我得到这个地址::ffff:10.0.2.2 。 它是否存在一种方法使本地主机和远程工作?

包括另一个回送项目

我正在尝试在loopback中设置一个项目工作stream,该工作stream利用了两个不同的项目,其中包括一个基础项目 这是我想要做的: loopback-project-1 |__loopback-project-2 |__loopback-project-3 所以我的想法是在loopback-project-1完成所有的基本任务,比如身份validation和授权,然后在loopback-project-2和loopback-project-3包含这个任务,以免我在其他项目中重新创build逻辑。 换句话说,我需要一些方法来跨多个回送应用程序共享模型,而不必复制代码。 我尝试创build一个启动脚本,试图加载其他应用程序作为明确的中间件,但似乎只公开REST API; 不是模型。 这是我的靴子: var boot = require('loopback-boot'); module.exports = function(app) { app.use('/base', require('../../../loopback-project-1/server/server')); boot(app, '../../../loopback-project-1/server/server', function(err) { if (err) throw err; }); }; 注意:这个启动脚本将包含在loopback-project-2和loopback-project-3 。 我的最终目标是能够将loopback作为多应用程序体系结构的主要开发栈,重点关注代码重用。 这个想法是将loopback-project-1到其他将自动包含基本模型以及驻留在loopback-project-1基本functionloopback-project-1 ; 如authentication/授权。 让我知道如何做到这一点。 谢谢

预加载/预先需要.js路由文件的目录

使用Express与Node.js,我们可能会这样做: app.use('api/:controller/:action/:id', function(req,res,next){ var controller = req.params.controller; var action = req.params.action; var route = require('./routes/' + controller + '/' + action); route(req,res,next); } 现在这一切都很好,除了至less有一个问题:如果这个文件还没有“需要”,路由文件在运行时dynamic加载。 这意味着它至less有点慢。 有人有一个通过目录recursion的脚本,并在服务器首次启动时预先加载/预先要求所有.js文件? 我也有类似的问题,使用RequireJS的前端。 该解决scheme似乎是编写一个bash脚本,将目录及其子目录中的所有.js文件path写入文本文件。 那么当服务器启动时,它会读取该文本文件,并且需要在文本文件中列出的目录中的所有文件。 这是做这件事的最好方法吗?

将文件从AngularJS上传到ExpressJS 4 API

我的AngularJS应用程序通过内部API与Express进行通信。 我在Angular中使用ng-file-upload来处理上传的文件。 上传代码看起来像这样: Upload.upload({ url: '/api/uploadCSV/', file: CSVfile }).progress(function (evt) { var progressPercentage = parseInt(100.0 * evt.loaded / evt.total); console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name); }).success(function (data, status, headers, config) { console.log('file ' + config.file.name + 'uploaded. Response: ' + data); }).error(function (data, status, headers, config) { console.log('error status: ' + status); […]

jwt on node – 客户端如何将令牌传递回服务器

好的。 我想我没有理解基于令牌的validation的基本部分。 我正在使用快递节点,并使用jwt,以防止访问我的网站,如果你还没有login。我可以在login页面上创build一个令牌,我可以发回给客户端,并将其存储在localStorage / Cookie 。 现在,如果用户想要导航到另一个页面,他们将input一个url,并触发获取请求。 在我作为获取请求的一部分加载页面之前,如何从localStorage / cookie访问该令牌并将其传递给服务器。 我的假设是,应该有一种方法将令牌传递给服务器 – 在中间件中截取它 – 如果令牌是合法的,则加载页面;如果令牌未被正确validation,则redirect到login页面。 在发布请求时,这可能会简单得多,因为您可以在加载页面之后获取令牌并将其作为ajax调用的一部分传递。 我已经看到引用包括令牌作为请求头(授权承载)的一部分。 我认为这只适用于后,因为如果你能够设置头参数“全球”,那么你为什么要打扰存储在客户端在cookie / localStorage。 所以你可以看到我对工作stream有点困惑。 好像我在某种程度上反对谷物。 任何清晰度将不胜感激。

Nodejs + mongodb中REST API的自定义URL

所以我在nodejs api里有下面的mongoose模式: var profileschema = new mongoose.Schema({ name: { type: String }, surname: { type: String }, id: { type: String } }); 以下路线: var profile = express.Router(); profile.route('/profile') .get(profilecrtl.findAllProfile) .post(profilecrtl.addProfile); 我可以制作其他路线,如/ profile /:id ,他们完美的工作。 但我想生成自定义的url,取决于用户所要求的参数和想要的方法,而不必编码每个案例。 例如: / profile?id = 1234应该给我有关id = 1234configuration文件的完整信息 { id: '1234', name: 'john' surname: 'wicked' } / profile?id = 1234&name […]

node.js服务器不需要请求主机名

目前,我正在使用req.headers.host来确定服务器的主机名,这在处理服务器收到的请求时是有效的。 但是如何在没有请求的情况下(即不需要req )确定主机名? 我想特别是,当节点服务器是第一次创build和运行,并收到任何请求之前。 我正在使用express模块。 谢谢

forbiddenError / 403 Ajax Express Csurf – 如何正确使用Csurf?

嘿,伙计们,我已经在这一个星期,我不能弄明白。 我正在构build一个移相器游戏,并使用节点设置了一个记分板,这是我第一次使用节点,我不能完全弄清楚如何使用csurf,因为文档非常混乱。 ForbiddenError: invalid csrf token at verifytoken (/Users/jorybraun/web/highscore/node_modules/csurf/index.js:269:11) at csrf (/Users/jorybraun/web/highscore/node_modules/csurf/index.js:97:7) at Layer.handle [as handle_request] (/Users/jorybraun/web/highscore/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/Users/jorybraun/web/highscore/node_modules/express/lib/router/index.js:312:13) at /Users/jorybraun/web/highscore/node_modules/express/lib/router/index.js:280:7 at Function.process_params (/Users/jorybraun/web/highscore/node_modules/express/lib/router/index.js:330:12) at next (/Users/jorybraun/web/highscore/node_modules/express/lib/router/index.js:271:10) at /Users/jorybraun/web/highscore/app.js:43:5 at Layer.handle [as handle_request] (/Users/jorybraun/web/highscore/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/Users/jorybraun/web/highscore/node_modules/express/lib/router/index.js:312:13) 每次我尝试从索引路由发送一个jquery post请求到我的路由得分路由时,我得到一个403错误。 我真的很想限制对路由的访问,所以除非你提交内部的ajax请求,否则你不能访问它们。 所以这里是我的app.js文件 // app.js var mongodb = require('mongodb'); var monk = require('monk'); var credentials = […]

在回送中跳过删除操作,发送自定义响应对象

我想覆盖strongloop的默认删除操作,并通过某种“软删除”取代它们,只是设置一个标志删除。 我到目前为止,我钩了原来的操作,没有调用next()函数操作不被允许数据库。 但是它也没有发送任何响应状态。 那么做这个或发送自定义响应对象的最好方法是什么? module.exports = function (Module) { Module.observe('before delete', function(ctx, next) { id = ctx.where['id']; Module.update({id: id}, {deleted: true}, null); //next(); // don't call next to avoid deleting }); 更新 :不是一个解决scheme,但至less它触发API的一些响应: Module.observe('before delete', function(ctx, next) { var id = ctx.where['id']; Module.update({id: id}, {deleted: true}, null); // dirty method to trigger response var err […]