Tag: node.js

在哪里安全地存储Node js Web服务的SSL证书

无法find这个在线的明确答案。 我在Linux Redhat企业机器上运行了一个节点js api服务。 我将ssl密钥存储在普通目录文件夹/ home / ssl / keys中(感觉不安全)。 我的同事build议我使用Java Keystore来存储密钥。 Java密钥存储和我在网上find的节点j之间没有任何关系。 有没有替代节点js安全地存储类似于java密钥库的ssl证书?什么是在生产环境中保护ssl证书的最佳做法? 简单地将密钥保存在服务器上的随机文件夹中有什么缺点? 谢谢。

dynamic生成kibana iframe(短url)

我有一个网页有一个select下拉列表几个月,因为它的选项,并与kibana iframe div。 每当用户从下拉列表中select一个月份时,用户界面应该能够将iframe可视化更改为选定的月份。 我已经写了一个简单的代码,只要改变一个月,就更改iframe源。 我现在想能够从Nodejs服务器或Kibana获取这些iframe链接(url)。 <select id="month"> <option value="Jan">Jan</option> <option value="Feb">Feb</option> <option value="Mar">Mar</option> <option value="Apr">Apr</option> </select> <div> <iframe id="monthVisualization"></iframe> </div> /*function that is executed when month is selected from dropdown*/ function changeIframe(month) { /*some code that gets iframe link of visualization of month that is received as parameter*/ var url = someLink; $('#monthVisualization').attr('src', someLink); […]

注入参数到节点模块时遇到麻烦

上下文 我目前正在开发一个引擎,用Asp.Net Core生成HighMaps脚本。 为了做到这一点,我使用API Microsoft.AspNetCore.NodeServices来执行由HighChart提供的节点模块(请参阅https://github.com/highcharts/node-export-server )。 我已经按照这个链接来实现一个解决schemehttps://davidsekar.com/angular/server-side-rendering-of-highcharts-in-net-core 。 问题 我的代码包含在下面: 节点模块 /** * https://github.com/highcharts/node-export-server */ const exporter = require('highcharts-export-server'); // Set up a pool of PhantomJS workers let config = { maxWorkers: 10, initialWorkers: 5, reaper: true, listenToProcessExits: true }; // exporter.logLevel(4); exporter.initPool(config); // Export settings // var exportSettings = { type: 'png', options: { […]

如何使用Node.js和邮递员将file upload到cloudinary

我通过POSTMAN使用Node js上传文件。 这里我需要把file upload到cloudinary 。 我的邮递员截图如下。 我在下面解释我的代码。 var multer = require('multer') var cloudinary = require('cloudinary'); cloudinary.config({ cloud_name: 'sample', api_key: '874837483274837', api_secret: 'a676b67565c6767a6767d6767f676fe1' }); var storage =multer.diskStorage({ destination: function (req, file, callback) { callback(null, './uploads'); }, filename: function (req, file, callback) { callback(null, Date.now()+'-'+file.originalname); } }); var upload = multer({ storage : storage }); app.post('/api/users/save-card-file',upload.single('file'), function […]

NodeJs – Browsify – 无法使用节点编译器编译捆绑文件

我正在使用express开发一个node.js应用程序。 当我做节点nodejs,这是完美的localhost:3000。 现在我用browsify把它捆绑到一个名为bundle.js的文件中,并尝试了一下节点bundle.js,这个错误是这样的: typeError:无法从bundle.js的下面一行读取未定义的属性'prototype' bundle.js在下面给出) var req = Object.create(http.IncomingMessage.prototype) NodeJs文件: var sql = require("mssql"); var express = require('express'); var http = require("http"); var bodyParser = require('body-parser'); var jwt = require('jsonwebtoken'); var app = express(); app.use(bodyParser.json()); app.use(function (req, res, next) { //Enabling CORS res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, contentType,Content-Type, Accept, Authorization"); next(); }); app.get('/',function(req,res){ […]

将video上传到节点中的url

在我的应用程序中,我想发布一个video到多个networking(fb,twitter …),我正在上传video到cloudinary,它发回的url,我用来张贴到fb。 对于Twitter,无法通过url发布video。 有没有其他办法可以做到这一点? 我的服务器尺寸很低,如1-2GB,所以我不能下载video到我的服务器,然后创build一个stream上传到Twitter。 我担心,如果3-4名用户开始上传,那么我的服务器将崩溃,内存不足。 任何build议使用twit包或简单的HTTP请求是受欢迎的。 谢谢

节点JS请求 – 承诺POST方法不能识别一个string

为了连接我的node.js模块与另一台服务器,我使用'request-promise'库。 当我想发布这样的东西: rp.({ method: 'POST', headers:{ 'Content-Type': 'text/plain', 'Authorization': '' }, uri: 'https://myendpoint.com', body:{ name: 'here is my a name', code: 'here is my code', location: 'here is my location' } }).then(…) 但总是当我尝试使用这个function,我得到这样的错误信息: RequestError: Error: Argument, error, options.body. TypeError: First argument must be a string or Buffer 我所有的身体参数都是string。 此外,我也尝试了相同的邮递员方法,并为我工作。 那么我做错了什么?

用户身份validation错误 – Passport.js

即时通讯使用passport.js(本地策略)来validation用户,但我收到以下错误: Unhandled "error" event. (Incorrect arguments) 详细的错误消息: index.js文件: const {register: registerUser, login: loginUser} = require('../controllers/authentication'); // login router .route('/login') .post(loginUser); Authentication.js文件: // login function let login = (req,res) => { if(!req.body.email || !req.body.password){ sendJsonResponse(res, 400, {"message": "All fields required"}); return; } passport.authenticate('local', (err, user, info) => { let token; if(err){ sendJsonResponse(res, 404, err); return; } […]

是否有可能在MongoDB中“join”文档并删除“父”文档,但仍保留“子”文档?

我正在用MEAN堆栈构build一个CRUD应用程序。 我有一个patients模式,我需要给这些患者添加一个medical history ,我想知道是否可以像使用mysql中的“连接”来使用这些文档。 如果是的话,甚至在病人被删除之后,我怎么能保留medical history ? 这是我patient模式 var mongoose = require("mongoose"); var Schema = mongoose.Schema; var paciente_schema = new Schema({ nombre: {type: String, required: true}, estado: {type: String, required: true, default: "En espera"}, fecha: {type: String, required: true}, edad: {type: String, required: true}, sexo: {type: String, required: true}, direccion: {type: String, required: true}, contacto: […]

与SQL服务器一起发生事务隔离级别问题

我们有一个具有Sequelize事务的函数。 在事务中,它检查数据库表行上的字段,并基于该字段返回或继续更新各种数据库表。 例如 let buyingStatus = await models.buyingFood.findOne({ where: { id: 21 }, transaction: t}); if (buyingStatus.status == 'bought') return 'already bought' 如果继续,它会更新多个地方,只有在状态不被bought时才更新,最后将状态更改为bought 。 问题是当函数被同时调用两次时。 瓶颈是select语句后发生的更新。 所以两个人可以通过没有买的购买状态,然后更新bought状态,以及所有其他更新。 不是SQL的专家,我们研究发现,locking表或更改隔离级别可以解决这个问题。 但是,我们都执行并没有帮助。 见下文 1)改变隔离级别 let t = await models.sequelize.transaction(isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE); 2)在查找上设置locking let buyingStatus = await models.buyingFood.findOne({ where: { id: 21 }, transaction: t, lock: t.LOCK.UPDATE }); 我们想要的是从未提交的交易中读取,所以如果人A已经改变了他之前的bought状态