如何将OpenShift Online 3平台更新到最新版本的Node.js?

在OpenShift Online 2的时代,有能力将Node.js更新到最新版本。 据我所知,这种方法不再适用于新的OpenShift Online 3版本。 目前,OpenShift只提供过时或LTS版本的Node.js,egv4或v.6。 我的问题: 如何将OpenShift Online 3平台更新到最新版本的Node.js?

如何处理返回一个内部callbackvariables?

如何在callback中访问variables,而不必先将其重新分配给variables? 例如,下面的代码工作: let volume = 0; loudness.getVolume((err, vol) => { volume = vol; }); 但是,如果我希望它可以直接分配给一个const 。 以下返回未定义: const volume = loudness.getVolume((err, vol) => vol));

使用高速中间件并将res.local数据传递给路由

我试图build立一个安全检查中间件,将运行在我添加到的路线上。 中间件 function SecurityCheckHelper(req, res, next){ apiKey = req.query.apiKey; security.securityCheck(apiKey).then(function(result) { res.locals.Security = result.securitycheck; console.log(res.locals.Security); }); return next(); // go to routes }; 路线 app.get('/settings', SecurityCheckHelper,function(req, res, next) { console.log(res.locals); }); 它相对简单,我试图通过result.securitycheck (返回true / false)到/settings路线。 但res.locals返回一个空对象

在json文件中使用Node envs

我使用dotenv声明我的ENV,然后我将M导入到主文件,但我有一个JSON文件需要proccess.env但我不想硬编码的API密钥 有没有一种方法到env到json文件没有硬编码他们? 由此 { "accessKeyId": "ACCESS_KEY", "secretAccessKey": "SECRET_KEY", "region": "us-east-1" } 对此 { "accessKeyId": proccess.env.ACCESS_KEY, "secretAccessKey": "SECRET_KEY", "region": "us-east-1" }

NodeJS需要模块不工作

我为我的项目设置passportjs。 我使用passportConfigvariables将护照configuration文件导入到app.js。 我想要passportConfig文件在app.js中运行。 // app.js file var mysql = require('mysql'), passport = require('passport'), passportConfig = require('./passportConfig.js'); // Database var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); > 在这里,我不明白为什么我需要再次需要MySQL和护照。 因为我已经在app.js. 当我删除需求时出现一个错误,告诉我包括他们。 // passport config file // Require var mysql = require('mysql'); var passport = require('passport'), // Database var connection = mysql.createConnection({ […]

在node.js CLI中获取浏览器响应或callback

当用户第一次使用它时,Snyk会要求authentication。 它看起来像这样: 用户在cmd中键入snyk auth 。 标签在浏览器中打开并login页面。 login。 Snyk收到我已经login的响应,然后进行下一步。 1 – 3对我来说是显而易见的。 但是我不明白节点是如何知道我已经login的。它与HTTP头有关,但我仍然不知道它在代码中的样子。 我试图在cli / commands / auth.js中find我的答案,但代码对我来说太复杂了。

在Hapi.js中将httpredirect到https

我有我的hapi服务器的以下configuration const server = new Hapi.Server(); const tls = { cert: fs.readFileSync(path.join(__dirname, '../certificates/cert.crt')), key: fs.readFileSync(path.join(__dirname, '../certificates/cert.key')), }; server.connection({ port: process.env.PORT_HTTP || 80, host: process.env.HOST || 'localhost', }); server.connection({ port: process.env.PORT_HTTPS || 443, host: process.env.HOST || 'localhost', tls, }); 服务器在http和https上运行正常,但我想redirect从http到https所有stream量。 我应该怎么做,已经尝试注册hapi-require-https npm模块,但stream量仍然保持不变,没有任何反应。

无法获得ejs值到脚本variables?

每当我尝试在脚本中设置一个variables等于使用ejs呈现的数组时,我会得到'无效是意外的标记'。 这里是片段: <script type="text/javascript"> var list = <%= events.slice(0) %>; </script> 本来我已经设置为: <script type="text/javascript"> var list = <%= events %>; </script> 但是我收到了同样的错误。 我很确定你可以渲染一个包含脚本标签的ejs文件,并将ejsvariables设置为脚本标签中的一个variables。 我错了吗? 事件是日历的事件模型的数组。

代码在本地生产中的行为有所不同

我有一个环回应用程序,我已经创build了一些种子脚本来预先填充数据库。 这是种子 const remote = { "name": "remote", "email": "remote@ttt.com", "password": "arglebargle" } app.models.AppUser.find({where: {email: 'remoteUser@ttt.com'}}) .then(res => { if (res.length === 0) { createUsers(remote, 'remote') } else { console.log('remote user already exists') } }) 这将调用下面的createUsers const app = require('../server') const Promise = require('bluebird'); module.exports = { createUsers: (userInfo, roleName) => { if (!userInfo || […]

如何使用Knex查找或创build?

就简单的用户注册而言,我怎样才能在用户名中查找或创build最佳性能? 猜测我需要使用原始查询,但我还没有如此精明的SQL。 或者,如果用户名已经存在,至less应该拒绝。