Articles of javascript

用Node.js和Express显示一个JSON数据集

首先,我想指出,我对Node.JS非常陌生。 我试图使用NodeJS来创build一个包含多个表和信息的页面。 我的问题是,我无法从SQL查询结果到HTML表格。 目前我使用快递将数据发送到HTML页面。 我使用的代码: var http = require('http'); http.createServer(function(req, res) {}); var mysql = require("mysql"); var express = require('express'); var app = express(); console.log('Creating the http server'); con.query('SELECT id ,name FROM customer', function(err, rows, fields) { console.log('Connection result error '+err); console.log('num of records is '+rows.length); app.get('/', function (req, res) { res.send(rows); }); }); app.listen(3002, […]

Object.assign和刚分配的区别

我想知道这个之间的区别: Object.assign(otherObject, { someNewProperty: '' }); 和 otherObject.someNewProperty = ''; 而且哪一个更快? 谢谢。

将数据安全地存储在Node CLI应用程序中

我目前正在编写一个NodeJS命令行应用程序。 该应用程序进行API调用,并返回一些数据给用户。 鉴于这是一个公共API,用户需要一个API令牌。 这个CLI将通过npm i -g super-cool-api-cli在用户的机器上全局安装。 用户第一次运行CLI时,系统会提示input令牌,然后将其存储起来,以便随后每次运行令牌时都不需要input令牌。我也为用户提供了一种重置它的方法。 我将它存储在我的CLI模块的实际目录中,正如所述,它是全局安装的,它看起来像这样: fs.writeFile( __dirname+'/.token.json', JSON.stringify( { "token": token }, null, 2 ), 'utf8', (e)=>{ // error handling and whatever }); 我将文件命名为.token.json ,使用一个点来默认隐藏文件。 我想我问的是,如果在NodeJS命令行应用程序中存储更好/更安全的方式来存储敏感信息,那么您将运行多次。 我想过使用像环境variables这样的东西,但似乎在这个过程结束时会过期。 安全考虑是我有点缺乏的一项技能,但是大大希望了解更多,所以提前谢谢你的提示。

简单的方法来增加任何更新查询的Mongoose文档版本?

我想开始利用Mongoose文档版本控制(__v key)。 我有一个问题,实际上增加版本的价值,然后我发现你必须添加this.increment()执行查询时。 有没有办法自动递增? 现在,我只是把它添加到前置中间件中进行更新types的查询: module.exports = Mongoose => { const Schema = Mongoose.Schema const modelSchema = new Schema( { name: Schema.Types.String, description: Schema.Types.String } ) // Any middleware that needs to be fired off for any/all update-type queries _.forEach( [ 'save', 'update', 'findOneAndUpdate' ], query => { // Increment the Mongoose (__v)ersion for any […]

无法使用“下划线”来使用parsing服务器

我刚刚迁移了一个分析服务器,除云代码之外,一切正常。 我已经了解到,这是因为在我的main.js中,我需要库“Underscore”。 这是我的云代码function: Parse.Cloud.define("ReadyUp", function(request, response) { var _ = require('underscore'); var fbid = request.user.get("fbid"); var query = new Parse.Query("Spel"); query.equalTo("lobby", fbid); query.find().then(function(results) { _.each(results, function(spel) { spel.addUnique("ready", fbid); }); return Parse.Object.saveAll(results); }).then(function(result) { response.success(result); }, function(error) { response.error(error); }); }); 代码在迁移之前没有任何错误。 我猜测的要求没有find正确的文件夹。 给你文件夹结构看起来像这样: Cloudcode位置:mainfolder-> cloud-> main.js 下划线库:mainfolder-> node_modules->下划线(文件夹) 代码是错误的还是文件夹的结构有问题? 提前致谢! /马丁

如何更新es6数组中的元素?

我有一个对象的数组,我想修改对象的属性。 我知道我们可以使用拼接function删除对象。是唯一的选项删除并添加回来?

Selenium&webdriver.io如何使用executeScript?

我试图用Selenium,W​​ebDriver.io和Node.js(用Mocha)来testing一个简单的表单。 所以我有这样的东西: var webdriverio = require('webdriverio'); var expect = require('expect'); describe('Test form', function(){ beforeEach(function() { browser.url('/'); }); it('should save object', function() { expect(browser.executeScript('return window.data;')).to.be([]); }); afterEach(function() { if (this.currentTest.state !== "passed") { browser.saveScreenshot(); } }); }); 我的wdio.conf.js : var selenium = require('selenium-standalone'); var seleniumServer; exports.config = { host: '127.0.0.1', port: 4444, specs: [ 'test/*.spec.js' ], […]

检查是否在节点运行程序时给出ARGV

在节点上运行程序时: node test.js 如何在运行node test.js –example时检查程序是否被赋予ARGV node test.js –example ? 我到目前为止所尝试的是以下内容: function say(input){ console.log(input); } if(process.argv[1] !== '') { say('false'); } else { say('success'); } if(process.argv[1] === null) { say('false'); } else { say('success'); } 然而,第一个解决scheme不会输出else ,第二个解决scheme只输出NUL is not defined这样NUL is not defined所以我在想我在编码时犯了一些错误?

承诺解决后调用函数,但Jasmine不通过testing。 为什么?

我的应用程序使用一个服务,返回一个通常依赖于一大堆其他承诺的承诺。 我已经将这个重构成单独的命名函数,使testing(和可读性)更容易。 所以在这种情况下,我只想testing一下run函数是否完成了它的工作并调用其他函数。 例如 run() { return myService .connection .then(this.namedFunction1) .then(this.namedFunction2) .then(this.namedFunction3) .catch((error) => { console.log("doh!", error.stack); }); 当我testingnamedFunction1被称为茉莉花失败时,尽pipe事实并非如此。 下面是我为保持简单而编写的一个小代码示例: getString() { return Promise.resolve("Heeeelp. Heeeelp!!"); } printToConsole(string) { console.log(string); // This works! but Jasmine says nay 🙁 } myFunction() { this.getString() .then(this.printToConsole) .catch((error) => { console.log("Some error occurred", error); }); } …和testing: it("should call the […]

readFileSync不是一个函数

嗨,我是相对较新的节点js和环顾四周,但无法find解决scheme。 我没有检查require JavaScript文件,它似乎没有“readFileSync”的方法。 也许我没有一个正确的需求文件? 我很难find这个文件,到处都在讨论这个文件,但是大多数人没有发布到哪里去。 我安装了节点js并具有require.js文件。 我目前的代码是这样的: fs = require(['require'], function (foo) { //foo is now loaded. }); console.log("\n *STARTING* \n"); // Get content from file var contents = fs.readFileSync("sliderImages", 'utf8'); 我刚开始有点需要工作,但似乎加载了需要的javacscript文件。 我一直在跟随指南,我不知道为什么我得到这个错误: Uncaught TypeError:fs.​​readFileSync不是一个函数 我已经尝试了许多固定的,似乎无法找出这一个。 任何帮助是极大的赞赏。 谢谢。