Articles of node.js

在Node.js中使用axios发布表单数据

我正在testingPostman上的Uber API,并且能够成功发送带有表单数据的请求。 当我尝试使用Node.js和axios库翻译这个请求时,我得到一个错误。 这是我的邮差请求的样子: 我得到的回应是: { "error": "invalid_client" } 以下是我在Node.js和axios中所做的: var axios = require("axios"); const config = { headers: { 'Content-Type': 'multipart/form-data' } }; axios.post('https://login.uber.com/oauth/v2/token', { client_id: '***', client_secret: '***', grant_type: 'authorization_code', redirect_uri: 'http://localhost:8080/', code: '***' }, config) .then(function(response) { console.log(response.data) }) .catch(function(error) { console.log(error) }) 当我这样做,我得到一个400响应。 我添加了'multipart/form-data'标题,因为我填写了邮递员请求中的表单数据。 没有头我得到相同的结果。 我期望得到我从邮差得到的相同的响应,有没有在我的configurationvariables在Node.js脚本错了吗? 任何帮助,将不胜感激!

使用fetch-mock模拟zip压缩响应

我试着用下面的代码: require( 'isomorphic-fetch' ); const fetchMock = require( 'fetch-mock' ), fsp = require( 'fs-promise' ), unzip = require( 'unzip' ), rimraf = require( 'rimraf-then' ), path = require( 'path' ); let zipLink = 'https://github.com/stevemao/left-pad/archive/master.zip', out = 'left-pad-master'; // Careful: lib might be removed at any moment. fetchMock.get( zipLink, fsp.createReadStream( path.join( __dirname, 'left-pad-master.zip' ) ) ); […]

我可以强制链接节点@ 6吗?

可以通过强制链接node@6吗? $ which node $ echo $? 1 $ brew link node Error: No such keg: /usr/local/Cellar/node $ brew search node leafnode llnode node node-build node@0.10 node@0.12 node@4 node@5 node@6 ✔ nodebrew nodeenv nodenv Caskroom/cask/mindnode-pro Caskroom/cask/node-profiler Caskroom/cask/nodebox Caskroom/cask/nodeclipse Caskroom/cask/printnode Caskroom/cask/soundnode $ brew link node@6 Warning: node@6 is keg-only and must be linked with –force Note […]

使用Visual Studio代码远程debuggingDocker中的NodeJS

我想为我的应用程序使用官方node泊坞窗图像。 但是我不能让远程debugging器在主机上工作。 我正在使用Visual Studio代码连接到远程debugging器。 奇怪的是使用非官方的图像cusspvz/node远程debugging工作正常。 当我运行docker log对容器的cusspvz/node实例时,我得到以下输出: Debugger listening on [::]:5858 但是,当我运行docker log对容器的node实例我得到: Debugger listening on 127.0.0.1:5858 这导致我相信debugging器正在监听错误的IP地址(应该是通配符而不是本地主机?) 我已经尝试了内置debugging器以及nodemon。 不幸的是,我无法让节点检查器工作,因为它无法安装(看来,构build失败了)。 这是我的Dockerfile: FROM node WORKDIR /scraper EXPOSE 5858 ENTRYPOINT ["/bin/bash", "-c", "if [ -z \"$REMOTE_DEBUGGING\" ]; then node –debug index.js; else node –debug-brk index.js; fi"] COPY . /scraper RUN npm install 我用docker-compose启动容器,使用这个YML文件: version: '2' services: alt.nphotos.imagescraper: […]

使用Node.js打印baseUrl

为了避免import长path,我在我的tsconfig.json使用Typescript baseUrl选项 这是我的tsconfig.json : { "compilerOptions": { "target": "ES6", "module": "none", "removeComments": true, "rootDir": "./", "outDir": "Build", "moduleResolution": "node", "noImplicitAny": true, "pretty": true, "baseUrl": "./" }, "exclude": [ "node_modules", "Build" ] } 所以不要这样做 import foo from "../../../../hello/foo" 我这样做 import foo from "hello/foo" 在Typescript编译器中它工作的很好,但是当我用node.js运行我的应用程序时,我有这个错误: module.js:474 throw err; ^ Error: Cannot find module 'hello/foo' Ps:我不想要像在互联网上看到的那样replacerequire()函数 那么我怎样才能让node.js和baseUrl一起工作,或者把打字机replace成"hello/foo"到"../../../../hello/foo" ? […]

从另一个云function调用云function

我正在使用云端函数在免费的Spark层次上调用另一个云端函数。 有没有特殊的方法来调用另一个云端function? 或者你只是使用标准的HTTP请求? 我曾尝试直接调用其他函数,如下所示: exports.purchaseTicket = functions.https.onRequest((req, res) => { fetch('https://us-central1-functions-****.cloudfunctions.net/validate') .then(response => response.json()) .then(json => res.status(201).json(json)) }) 但是我得到错误 FetchError:请求https:// us-central1-functions- ****。cloudfunctions.net/validate失败,原因:getaddrinfo ENOTFOUND us-central1-functions – *****。cloudfunctions.net us-central1-functions – ***** cloudfunctions.net:443 这听起来像firebase阻止连接,尽pipe它是一个谷歌拥有,因此它不应该被locking Spark计划只允许向Google拥有的服务发送出站networking请求。 如何使用云端函数调用另一个云端函数?

在Minikube和docker上开发工作stream程

我正试图了解如何有效地开发dockerized应用程序,特别是Kubernetes。 我正在努力寻找正确的方式去实时编辑容器。 在过去的Docker中,我只是使用类似于Nodemon的东西来监视文件在本地更改,然后当我完成应用程序时,我将dockerize并部署。 对于Kubernetes(minikube),我的第一印象是我应该在每次编辑时重build容器。 当然,这不可能是人们在这里发展的方式 – 我错过了什么? 我应该在本地进行编辑,然后dockerize-> k8s部署? 那看起来不错。 我正在寻找一种方法,将所有本地更改同步到一个docker容器,然后重新启动kubernetes pod以进行新的更改,以便在开发期间从日志中读取数据。 如果这很奇怪,请推荐我一个更好的方法。 谢谢

仅当另一个具有特定值时,才需要Node Js Express Validator字段

我使用express-validator来检查我的post字段。 我的问题是我想只需要其他字段具有特定的值所需的一些字段。 例如: if person_organisation is true: person_organisation_name must be required if person_organisation is false: person_first_name must be required 有没有什么办法把这个规则放在validation架构中?

错误:getaddrinfo ENOTFOUND

我有一个简单的Node.js机器人,每秒都会向其他API发送HTTP请求。 如果返回的数据是正确的,那么我构build一个URL我的HTTP POST。 一切正常,但运行4-5小时后,我得到了这个错误 0|server | error: Error: getaddrinfo ENOTFOUND www.rest-api.com www.rest-api.com:443 0|server | at errnoException (dns.js:28:10) 0|server | at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:73:26) 有人可以向我解释为什么会发生这种情况吗? 重新启动我的服务器后,一切正常工作。 我使用axios来提出http请求。

用nodeJS上传文件

我在使用nodeJS和Angular上传文件时遇到了问题。 我find了解决scheme,但只有Ajax我不知道。 是否有可能没有? 用下面的代码,我得到这个错误: POST http://localhost:2000/database/sounds 413 (Payload Too Large) 码: HTML: <div class="form-group"> <label for="upload-input">This needs to be a .WAV file</label> <form enctype="multipart/form-data" action="/database/sounds" method="post"> <input type="file" class="form-control" name="uploads[]" id="upload-input" multiple="multiple"> </form> <button class="btn-primary" ng-click="uploadSound()">UPLOAD</button> </div> 使用Javascript: $scope.uploadSound = function(){ var x = document.getElementById("upload-input"); if ('files' in x) { if (x.files.length == 0) { […]