如何在JavaScript中解构对象时绑定方法?

如何在JavaScript中解构对象时绑定方法? const person = { getName: function() { console.log(this); } }; var a = person.getName; var b = person.getName.bind(person); var {getName: c} = person; person.getName(); //=> {getName: [Function]} a(); //=> window or global b(); //=> {getName: [Function]} c(); //=> window or global 我想要clogin控制台的“父”对象{getName: [Function]} 。 在一个解构行中解构一个对象时,是否有办法绑定所有方法?

jenkins找不到npm

在这个linux服务器上,我有一个名为“myuser”的用户。 对于这个用户,当回显path时,我得到这个: /home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/ usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏:/卡/箱 有一个节点应用程序,手动部署时运行: npm i 它工作。 现在,我安装了Jenkins。 jenkins项目我试图安装位于: /var/lib/jenkins/workspace/test 构build正在执行shell脚本。 在那个窗口我input了: #!/bin/bash npm i 当与jenkinsbuild立,我得到这个: [test] $ /bin/bash /tmp/jenkins756533162549346948.sh /tmp/jenkins756533162549346948.sh: line 3: npm: command not found Build step 'Execute shell' marked build as failure Finished: FAILURE 如果我只写 echo $PATH 在jenkins的壳里,我得到这个: [test] $ […]

mongoose承诺不工作

我的mongoosefunction忽略承诺查询,并立即落下,而不用等待另一个步骤 exports.editProduct = (id, data) => { Product.findById(id) .then((data) => { var imgS3arr = data.img; var tempArr = []; var i = imgS3arr.length while (i–) { if (!imgS3arr[i].match(/https:\/\/s3.eu-central-1.amazonaws.com\/es-shop\//g)) { tempArr.push(imgS3arr[i]) imgS3arr.splice(i, 1) } } return tempArr }) .then((tempArr) => { var tempArrS3 = [] return Promise.all(tempArr.map((img, i) => { return fetch.remote(img).then((base) => { var buf […]

如何使用ES6语法导入类? (没有巴比伦)

我有一个ES6类与默认导出文件: accessmanager.js export default class AccessManagerClient { constructor(){ … } } 我想要像这样导入它: anotherFile.js import AccessManagerClient from '../someFolder/accessmanager'; 当我运行我的规范时,我得到一个错误: import AccessManagerClient from '../someFolder/accessmanager'; ^^^^^^ SyntaxError: Unexpected token import 我有这样的npm和节点版本: $ npm -v 5.3.0 $ node -v v8.0.0

如何连接各种mongoose结果到一个JSON数组显示在DataTable上?

我需要连接不同的mongoose查询结果到一个数组。 我有一个像branch_data一样的mongoose结果 [ { _id: 59a270e53abb8426805b97fb, client_name: 'Client 1', branch_name: 'Branch 1', router_serial: '111111111', data_card_serial: '11111111', sim_number: '11111111111', modem_serial: '11111111111', idu_serial: '1111111111', dispatch_date: '08/27/2017', status: 'installed', action: 'primary();', __v: 0, ir_report: '201708271241491111111111.xlsx', notes: '111111111111111111', ip_address: '1111111111111', installation_date: '08/01/2017' }, { _id: 59a274045f867701fc07792e, client_name: 'Client 2', branch_name: 'Branch 2', router_serial: '2222222222222', data_card_serial: '22222222', sim_number: '2222222222222', modem_serial: […]

express.Router()并要求在Express.js中

我正在按照Express 4.x新的express.Router()方法来组织我的项目。 正如Express的文档所描述的那样, 路由器对象是中间件和路由的独立实例。 你可以把它看作是一个只能执行中间件和路由function的“小应用程序”。 为了更好的理解,我们来考虑一下这个项目结构: project/ index.js routes/ myRouter.js … … 和文件本身: index.js const express = require('express'); const app = express(); const path = require('path'); const myModule = require('myModule'); app.use('/myRouter', require('routes/myRouter')); // some more code using myModule set of functions 路线/ myRouter.js const express = require('express'); const path = require('path'); const router = express.Router(); […]

Multer没有看到上传的图像

我想在单个post请求中保存一个图像,这将是用户对MongoDB的头像,还有一些用户使用npm的包的信息叫做multer。 不幸的是,只有我能在控制台中看到的是错误: TypeError: Cannot read property 'path' of undefined register.pug extends layout block content h1 Register form(method='POST', action='/users/register') .form-group label Username: input.form-control(name='firstName', type='text') .form-group label Email: input.form-control(name='lastName', type='text') .form-group label Name: input.form-control(name='email', type='text') .form-group label Password: input.form-control(name='password', type='password') .form-group label Avatar: input.file(name='avatar', id='avatar' type='file') input.btn.btn-primary(type='submit',value='Submit') 注册路线 const upload = multer({ dest: 'uploads/avatars/' }) router.post('/register', upload.single('avatar'), […]

蓝鸟承诺与callback发电机

我如何让蓝鸟自动将.nodeify / .asCallback添加到生成的承诺? 在bluebird中,任何promise实例都可以附加到节点callback机制上: Promise.resolve('foo').asCallback(callback); 然而,有时可能不需要定义承诺本身,而是一种被调用的方法,每次都会返回一个新的承诺,如下所示: // create a new random number promise each time Promise.method((foo, callback) => Math.random()); // create a new random number promise each time using a generator Promise.coroutine(function *(foo, callback) { return Math.random(); }); 在这种情况下,如果我想附加一个callback处理程序的承诺,我不得不这样做“人为地”在最后,使用像这样一个临时的方法: // create a new random number promise each time using a generator Promise.coroutine(function *(foo, callback) { […]

如何检查一个url(或webservice)是否在Nodejs中存在?

我们如何检查一个web服务或一个网站是否在nodejs中存在? 我正在使用节点版本6.11和表示。 我尝试在npm中使用isAlive,但没有运气。 这是我尝试过的,但是一直都是错误的。 var IsAlive = require('is-alive'); var isAlive = new IsAlive(); isAlive.add("http://google.com", 301, function (err) { "use strict"; if (err) { console.log(err); } }); setInterval(function () { console.log(isAlive.isAlive("http://google.com")); }, 2000); console.log(isAlive.isAlive("http://google.com")); 我使用http也是这样: http.get('http://google.com', function (res) { console.log(res); }).on('error', function(e) { console.log(e); });; 还像: var request = require('request'); options = {method: 'HEAD', host: 'stackoverflow.com', […]

在package.json中读取package.json版本

我有一个package.json文件,看起来像这样: { "name": "myapp", "version": "0.0.1", "license": "MIT", "scripts": { "ng": "ng", "start": "webpack-dev-server –port=4200", "build": "webpack", "docker-build": "docker build -t myapp .", "docker-run": "docker run -d –name myapp -p 9090:9090 myapp", "docker-push": "docker build -t myapp . & docker tag myapp myrepo/myapp:{$VERSION} & docker push myrepo/myapp:{$VERSION}" }, … } 我试图获得版本号,当我运行npm run docker-push所以它会自动标记与package.json的版本号的版本。 我怎样才能做到这一点?