unit testing查询数据库的方法

所以我创build了一个接受ID的函数,通过数据库从数据库内部查询数据库,根据不同的场景返回数据,然后我们返回数据。 我将如何unit testing这个function? 我会存根据我的存储库层查找方法返回数据,所以我不依赖于连接数据库?

Cheerio的每个循环都不会提前爆发

在Cheerio / Jquery 文档中指出,返回false应该尽早打破每个循环。 我有以下代码: "use strict"; let cheerio = require('cheerio'); let $ = cheerio.load('<a href="www.test.com"></a><a href="www.test.com"></a>'); $('a').each(function(index,value){ console.log(index); return false; }); 它应该在我的脑海中打印0到控制台,但它打印0和1.我错过了什么?

如何在Docker中将主机代码装载到容器中?

我有一个非常简单的代码库,如下所示 Dockerfile docker-compose.yml package.json server.js 我的docker文件 FROM node:alpine RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app RUN npm install COPY . /usr/src/app EXPOSE 3000 CMD ["npm", "start"] 我的docker合成文件 version: "3" services: web: build: . volumes: – .:/usr/src/app – /usr/src/app/node_modules ports: – "3000:3000" depends_on: – postgres postgres: image: postgres:9.6-alpine ports: – 5432:5432 我可以构build并做docker-compose up但是我无法将我的源代码安装到容器(意思是当我编辑我的server.js并刷新浏览器时,它不会改变)。 我不确定哪些部件丢失。 […]

Nodejs编译stream程

我已经阅读了一些关于nodejs体系结构的好文章。 他们中的许多人对C / C ++绑定,V8引擎和libuv以及事件驱动和非块I / O等nodejs特性给出了详细的解释。 但很less有人谈论这个stream程。 我在另一篇关于nodejs编译stream程的文章中发现了这个问题 。 stream程是清晰的,但究竟如何JavaScript和C ++库工作,如文件系统,networking事情的东西。 是nodejs编译JavaScript到C ++编码,以便它可以做服务器端的东西?

使用node-gcm发送android通知而不折叠它们

我使用node-gcm向Android设备发送通知,在某些情况下,我需要发送带有通知的图像作为缩略图显示,如下所示: 缩略图通知 有时我需要发送没有缩略图的通知。 使用下面的代码,我可以发送通知中的图像,问题是当另一个通知收到时,他们崩溃,使新的一个覆盖已经存在的通知: var message = new gcm.Message({ "data" : { "title" : "Test", "message" : "Test message!", "priority" : 2, // Highest priority. "ledColor" : [255, 0, 0, 1], "content-available": "1", "image": req.body.notificationImageUrl, //<– image URL }, }); 但是,如果我设置如下的消息,我不能find一种方式发送图像,但通知不会崩溃,所有这些都出现。 另一个问题是,在这个版本中,led不会激活: var message = new gcm.Message({ data: { "priority" : 2, // Highest priority. […]

NodeJs + PhantomJs从page.evaluate方法返回JQuery结果

NodeJS新手在这里。 我试图parsing使用NodeJS和PhamtomJS( phantomjs节点 )的HTML。 当我从浏览器控制台运行JQuery $("[class*='question-summary']") ,它返回一个数组。 但是,我无法在nodejs上做同样的事情。 我猜stackoverflow有JQuery所以我不需要使用includeJs来加载jQuery。 其实,当我跑步 这里是我正在运行的nodejs示例; var phantom = require('phantom'); async function getHtml() { const instance = await phantom.create([ "–load-images=false" ]); const page = await instance.createPage(); await page.on("onResourceRequested", function(requestData) { console.info('Requesting', requestData.url) }); const status = await page.open('http://stackoverflow.com'); console.log("STATUS: " + status); const content = await page.property('content'); console.log(content); var result […]

使用x-amz-tagging请求标头指定标签

我有一个节点程序file upload到aws s3,我需要指定与请求标头的x-amz标签。 我尝试了一些东西,但不起作用! function buildRequestHeader() { return { 'Content-Length': fileBuffer.size, 'Content-Type': mimeType, 'x-amz-acl': 'public-read', 'x-amz-tagging' :{"tag1":'abcd',"tag2":'efgh'} } } 我已经看到了一些文件, PUT object-key?tagging HTTP/1.1 Host: examplebucket.s3.amazonaws.com Content-Length: length Content-MD5: pUNXr/BjKK5G2UKExample== x-amz-date: 20160923T001956Z Authorization: authorization string <Tagging> <TagSet> <Tag> <Key>tag1</Key> <Value>val1</Value> </Tag> <Tag> <Key>tag2</Key> <Value>val2</Value> </Tag> </TagSet> </Tagging> 你能解释一下它是如何工作的吗?

简单的方法来修改json的键从snake_case到camelCase

我有很多的JSONparsing和所有的JSON我收到的是有像在user_name蛇情况下的键。 而parsing我需要它像骆驼像userName情况下。 示例json文件如下所示: [{ "user_id" : 1, "user_name" : "Abcd" }, { "org_id" : 11, "org_name" : "some_name" } … ] 预期产出: [{ "userId" : 1, "userName" : "Abcd" }, { "orgId" : 11, "orgName" : "some_name" } … ] 我正在收到的JSON没有任何特定的固定标记,它可以是任何东西。 但所有的钥匙将在蛇的情况下。 我需要将其转换为camelCase。 我不能做的是find和replace,因为它也取代了蛇套pipestring。 有没有简单的方法,可以做到这一点?

NodeJS – 为什么节点报告错误的版本..?

我正在运行Windows 7专业版,并有节点v4.2.2 。 我刚刚访问过https://nodejs.org/en/并下载了“node-v6.10.1-x64.msi”以升级到v6.10.1 (目前的LTS)。 我安装了这个并重新启动了我的机器,但是现在在命令行上运行node -v返回v0.10.40 。 我检查了我的系统PATHvariables,它有C:\Program Files\nodejs\ 。 当我查看C:\Program Files\nodejs\node.exe的属性时,在“详细信息”选项卡上显示“产品版本”为6.10.1 。 为什么当我更新到v6.10.1 ..时, node -v reporting v0.10.40 ?

比较和匹配2个CSV文件

我有2个文件(两个文件都是> 1,000,000行): 第一个文件只包含一个md5散列 第二个文件包含md5; emailadress 现在我必须比较这两个文件,如果md5哈希是相同的 – >写在一个单独的文件emailadress。 我尝试了与MySQL和join SELECT `email` FROM `intern` INNER JOIN `extern` ON `intern`.`md5` = `extern`.`md5` 并阅读2 csv并比较它在2个循环。 的NodeJS: fs.readFile('public/md5-data/reachadout.csv', (err, internFile) => { fs.readFile('public/md5-data/customer.csv', (err, externFile) => { var internLines = internFile.toString().split('\n'); var externLines = externFile.toString().split('\n'); internLines.forEach(function(iLine){ var internCells = iLine.split(';'); if(externLines.indexOf(internCells[0]) > -1){ fs.appendFileSync('public/md5-data/blacklist.csv', internCells[1] + '\n'); } }) […]