Articles of node.js

使用通过heroku工头从.env文件加载的RSA私钥签名JWT时出错

我有一个运行在Heroku上的node.js web服务器,它将签名和validationJSON Web Tokens。 我已经生成了一个RSA公钥和私钥,它们看起来像这样: private_key.pem —–BEGIN RSA PRIVATE KEY—– MIIEowIBAAKCAQEAz7pZEypvrFJCDshsbOamj9bmy/dXnUOyCo5b3xSvvTNIoFAC 5ePXozCD/5Byih1JB6ZYE6OceEW6oArkPzZOl8bFBlqV9k30oerMtVei18+CfF/u FLWlJXs9FvXrRTKtsL43OmpLCH3LdzK9/+ZqhEx/TShp3JudUWuRW8ALqrBd8QW5 CWJHYozYVaIpFzwJ9KW6fJ9GpZfcToCOquLWo8iINnAovXmvcAtdmzgIqoucD988 f9oerll/CubJLy2rOiyeRvsAYouoefoyQZWN8IYPlnb5IB6Z7qnVL6rZz44dAjVw S3uARW3lxpfeZn3TN7wpPkBssGBF0OSEHNrXVwIDAQABAoIBAC8HHCVnpRKZKNVZ 8JoS+cB0wZmJrK8w5TzYj9oIP+UQmC+bDZzoISiT0j5ogFXeXWs68JO5pbHg72hO LvBUpiRcXryag3rYmTqTArdHWNmM5BiuSyMrIHFE3ka1dAcdew8ZcT1rVQNeH1Mk DLnDe3fqLaPVM2o7XLlTJfxklP+WN6xWhBgDVgEawneo5svdgblYhg3u7cb4fsHg cAf0sCYraVuqcUHa/AUVOx7n5U39x3ShOvOQvFlWEDD6uN4Yg/twW2UyfFDWD57p 2oPIEf06wOOu2XylPQwEU9w92Fr4yNqk0xksn8sOjbRyEPZncpDICsPTo1nsrz+R 0AcwWUkCgYEA7DfUujbbg6WrfSOyS718kTeej0Il5z19JYu11g+Sis4r8RWbT92q weCp4dCGCpJrsPbs4+s4hT42sKfjUcUy5ZCGTDturQNbhH0RGxPp1KUTrytzdph8 4mqpCVYcN1AmLCCA0WtFqJ53taWuipcLtU48ZRC4jHI+stUSNCtaE8UCgYEA4R+6 x5mUjOWAK8GSTgHMWa72KqaxR/osYwmMPtHtjIFm1aOElQaXbGlZKd3dR5Tnw/4R 8hO/gJc+eQeaPGhri0IVmG66JNTw8q0M0Qd+l0OrarYS5c09XzjAUdGOatstsaNE rhgRG90HvVYt0cHyKRa/C4+CnEBod/EoS/UnhGsCgYB5wT1Qzj3PWXFPCzs3du/i Gf0Mclf/HN6In76WG2i5SxOzLCPlwqflTtvBnS25/Uas7FmmEPQNGcguvhqZZz+Y vCm82VVusDBX1e8fOeBozr2aqJbXJjoYqkl+mnfoutMyI37Ccrxw8V1ar4+Lt9c9 GJpgrYGyQqC2pMTBRyci0QKBgHxc9uXE5ddgAQorCROm0qjIipzNMSo9/b9ISv15 Iu13nsNubZOV7JirKeKC+fbNP6t585fzaNs0sgJSPNYaKS7o9t0abiJisCifiHEA 3uHZNBzjMFVaqAiuZS/NwAsvwXJca1hxWyI1XE0wCmfR6GDie+96/AAtZIi95DDx 4T65AoGBAIE5LSP+glxJEd8jU/qc80D/dXf6icURyYDGARw8mziAgw6fL9cwbmqb IGDxP1ke2FA8OZ0W4VybRi9UcprenvADYpPb+CPZv4gxGoDFg0Bb/JcFUKL29hC1 steX0GR4TKYNeXLC+zz7Qr0DzhpqRswSyHG5GckkIRdgHx4l/Uza —–END RSA PRIVATE KEY—– public_key.pem —–BEGIN PUBLIC KEY—– MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz7pZEypvrFJCDshsbOam j9bmy/dXnUOyCo5b3xSvvTNIoFAC5ePXozCD/5Byih1JB6ZYE6OceEW6oArkPzZO l8bFBlqV9k30oerMtVei18+CfF/uFLWlJXs9FvXrRTKtsL43OmpLCH3LdzK9/+Zq hEx/TShp3JudUWuRW8ALqrBd8QW5CWJHYozYVaIpFzwJ9KW6fJ9GpZfcToCOquLW o8iINnAovXmvcAtdmzgIqoucD988f9oerll/CubJLy2rOiyeRvsAYouoefoyQZWN 8IYPlnb5IB6Z7qnVL6rZz44dAjVwS3uARW3lxpfeZn3TN7wpPkBssGBF0OSEHNrX VwIDAQAB —–END PUBLIC KEY—– (注意这些是为这个例子生成的,并没有在任何现场系统中使用) 当通过fs模块加载密钥(PEM文件)并传递到jsonwebtoken库时 […]

包装电子后在错误的地方创build目录

电子版本:0.37.5 操作系统:Ubuntu 15.10 我用电子打包机打包了我的项目。 通常,我在我的main.js文件所在的应用程序目录中创build一个名为downloads的目录。 打包后,我有locales和resources目录以及其他文件,内部resources目录中有另一个命名的app ,还有electron.asar文件。 在app文件夹里面有我的项目文件。 当我运行可执行文件时,它会在相同的位置创build目录,而不是在/resources/app/下创build它。 我该如何解决这个问题? 我的createDirectories函数: // create directory if it does not exist function createDirectory(directory, callback) { Fs.mkdirs(directory, function (err) { if (err) { console.error(err); } else { return callback(); } }) } 例如,我给downloads/images/作为参数给这个函数。 Fs.mkdirs是fs-extra模块的一种方法。 我的目录参数是downloads/images/和downloads/videos/

续集关联问题

我在查询中有一个问题,当我们通过查找所有的(包含段)条件时。 我的代码是 db.Doctor.findAll({ attributes : ['id','firstName','lastName', 'profilePicture','education','experience', 'fees','gender','mobile','email'], include: [ { model : db.Category, attributes : ['title']}, { model : db.Area, attributes : ['name']}, { model : db.City, attributes : ['name']}, { model : db.State, attributes : ['name']}, { model : db.Country, attributes : ['name']}, { model : db.DoctorClinicPicture, attributes : ['imagePath']}, { model : […]

如何使用从MongoDB取回的数据,而不是返回它

我想处理我从我的mongodb中取回的数据,然后再通过我的API返回。 我的API请求是这样的: .get('/users', function(req, res){ var users = []; User.find({}, function(err, data){ if(err) res.send(err); users = data; } // here I want to do some things with the users res.json(users); } 然而,用户得到了未定义…我的猜测是,代码运行前,响应回来有效地填写“用户”什么我正确的方式来等待,直到variables被填充,以便能够使用的内容? 或者这不是一个等待的母亲,而是一个不同的错误?

我如何有目的地崩溃我的node.js服务器?

我如何有目的地崩溃我的node.js服务器? (当发生某些致命的错误时,我想这样做,所以立即引起我的注意并予以修复) 我已经在这里看到这个post,但我不想使用C模块或运行一个无限循环(因为我的应用程序运行在一个服务器上,我花了CPU使用的时间)这意味着这将是非常昂贵的难以最大限度地利用CPU。 我已经尝试使用process.exit和process.abort,但只closures它被调用的模块。 例如,我的服务器是通过调用node main.js启动的,它需要几个自定义模块,我已经写在其他文件中。 如果在其中一个文件中调用process.exit或process.abort,则会正确closures在其他文件中发生的任何事情,但不会closures整个节点服务器和main.js. 这里是代码中发生的一个简单的例子: //crashServer.js var exampleVar; module.exports = function(){ if (!exampleVar){ var err = new Error("An error has occured"); Error.captureStackTrace(err); //error logging code console.log("An error has occured and the server will now crash."); process.exit(); } }; //main.js var crashServer = require("./crashServer.js"); crashServer(); while (true){ console.log("Server still running"); } 如果我跑 node […]

将JSON转换为bash环境variables

我写了这个美丽的一段时间后,运行在服务器上,并将JSON环境variables转换为bash .env格式。 #!/usr/bin/env node var strings = [] process.stdin.resume() process.stdin.setEncoding('utf8') process.stdin.on('data', function(data) { var json = JSON.parse(data) for (var key in json) { var val = json[key] strings.push(key + '="' + val + '"') } }) process.stdin.on('end', function() { var output = strings.join('\n') process.stdout.write(output) }) 这可以做到没有节点,只是bash? 我无法在没有安装节点或没有指定正确的path的服务器上工作。

nodejscallback使用module.exports

我从NodeJS开始,并试图了解callback如何与module.exports相关。 我有两个NodeJS文件。 s1.js接收input字段消息并将结果传回。 s1.js通过module.exports公开 start.js包含s1.js(通过require),并接收我想在程序中使用的结果 start.js var s1=require('./s1.js'); var r1; s1.test("Leon", function(err, result) { if (err){console.log("Error occurred "+err);} console.log("Callback after s1.test execution "+result); r1=result; } ); console.log("result "+r1); console.log("end"); s1.js module.exports.test=function test(msg,result){ result="Hello "+msg; console.log("Inside s1.js – "+result); }; 当我执行start.js时,结果如下 Inside s1.js – Hello Leon result undefined end 正如所料,结果是未定义的,因为s1.test的callback尚未完成。 我不明白的是为什么从来没有达到s1.test的callback。 有任何想法吗? 谢谢莱昂

我怎样才能依次运行三个参数?

到目前为止,我有这个代码: gulp.task('make_prod_aa', function () { makeAppHtml(config.srcAalHtml, function () { runSequence( 'makeTemplate', 'make_css_bundle', 'rename_css_bundle', 'make_js_bundle', 'rename_js_bundle', function () { makeAppIndex('index-aa.html'); }); }); }); 它允许我将parameter passing给两个函数,并依次运行函数和任务。 现在我想将parameter passing给第三个任务。 我想能够将config.aaTemplatesparameter passing给这里的任务makeTemplate: gulp.task('makeTemplate', function () { return gulp.src(config.aaTemplates) .pipe(print(function (file) { return "Added file " + file + " to template"; })) .pipe(minifyHTML({ collapseWhitespace: true })) .pipe(templateCache({ standalone: true, […]

为一个排名algorithm分页mongoosemapReduce

我正在使用MongoDB mapReduce编码一个排名饲料algorithm,它几乎可以工作,但最新的实施是分页。 地图减less支持结果的限制,但我怎么能实现偏移(跳过),例如根据结果的最新查看_ID,知道我正在使用mongoose? 这是我写的程序: o = {}; o.map = function() { //log10(likes+comments) / elapsed hours from the post creation emit(Math.log(this.likes + this.comments + 1) / Math.LN10 / Math.abs((now – this.createdAt) / 6e7 + 1), this); }; o.reduce = function(key, values) { //sort the values, when they have the same score values.sort(function(a, b) { a.createdAt – […]

Node.js和expressjs路由到另一个文件夹

我是学习expressjs和nodejs的新手。 我需要使用ui.router进行路由的帮助。 我真的不知道如何解释这与我如此裸露。 我的文件夹结构如下所示: 在我的app.js下javascripts看起来像这样: var app = angular.module('testing', ['ui.router']); app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { $stateProvider .state('home', { url: '/home', templateUrl: '/home.html' }) .state('client_form', { url: '/request', templateUrl: '/client.html', controller: 'MainCtrl' }); $urlRouterProvider.otherwise('home'); }]); 我的index.ejs看起来像这样: <!DOCTYPE html> <html> <head> <title>Testing</title> <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.10/angular-ui-router.js"></script> <script src="/javascripts/app.js"></script> </head> <body ng-app="testing"> <div class="col-md-6 col-md-offset-3"> […]