javascript

java

python

c#

node.js

android

reactjs

c++

php

jquery

html

css

git

ruby-on-rails

.net

ios

sql

c

string

ruby

javascript-如何在JSDoc中指定诺言的分辨率和拒绝类型?

我有一些代码返回一个promise对象,例如 使用Q库的NodeJS。

var Q = require('q');

/**
 * @returns ???
 */
function task(err) {
    return err? Q.reject(new Error('Some error')) : Q.resolve('Some result');
}

如何使用JSDoc记录这样的返回值?

trans by 2019-10-15T17:42:25Z

javascript-在node.js中更改密码和注销时使JWT无效的最佳实践?

我想了解在更改密码/注销时不击db而使JWT无效的最佳实践。

我下面的想法是通过点击用户数据库来处理以上两种情况。

1.在更改密码的情况下,我检查存储在用户数据库中的密码(哈希)。

2.在注销的情况下,我将上次注销时间保存在用户数据库中,因此通过比较令牌创建时间和注销时间,我可以使这种情况无效。

但是,这两种情况都是以用户每次点击api时每次点击用户db为代价的。 任何最佳实践都值得赞赏。

更新:  我不认为我们可以在不影响db的情况下使JWT失效。 所以我想出了一个解决方案。 我已经发布了我的答案,如果您有任何疑问,欢迎您。

trans by 2019-10-15T03:09:33Z

node.js-尝试安装LE时出现“请尝试再次以root / Administrator身份运行此命令”错误

我正在尝试在机器上安装LESS,并且已经安装了节点。 但是,当我输入“ node install -g less”时,出现以下错误,并且不确定该怎么办?

FPaulMAC:bin paul$ npm install -g less
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/less' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/less
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/less' }
npm ERR! not ok code 0
trans by 2019-10-14T21:50:25Z

node.js-全球匹配,排除所有JS文件

我是gulp.js的新用户。 我想将所有非JavaScript文件都移至构建目录。 我现在得到的是:

//Test copy
gulp.task('test-copy', function() {
    gulp.src(['myProject/src/**/*.!(js|map|src)'])
        .pipe(gulp.dest('myProject/build'));
});


//Results for various files
myProject/css/style.css //Copied - GOOD
myProject/html/index.html //Copied - GOOD
myProject/js/foo.js //Not Copied - GOOD
myProject/js/bar.min.js //Copied - BAD!
myProject/js/jquery-2.0.3.min.js //Copied - BAD!
myProject/js/jquery-2.0.3.min.map //Copied - BAD!

如您所见,它只匹配文件路径字符串中的第一个点,而不是我想要的最后一个。 如何修改全局搜索字符串以使其符合我的要求?

trans by 2019-10-14T20:17:03Z

javascript-返回功能*(){...}是什么意思?

这个问题在这里已有答案:

  • JavaScript中的“功能*”是什么?                                     3个答案

我在Koa看到了一些奇怪的东西。 它具有一些新的函数名称(来自[https://github.com/koajs/koa/blob/master/examples/co.js#L10):]

app.use(function(){
  return function *(){
    var paths = yield fs.readdir('docs');

    var files = yield paths.map(function(path){
      return fs.readFile('docs/' + path, 'utf8');
    });

    this.type = 'markdown';
    this.body = files.join('');
  }
});

return function *()是什么意思? 我们可以在JavaScript中声明名称为*的函数吗?

trans by 2019-10-14T10:59:22Z

javascript-为什么不建议`.catch(err => console.error(err))`?

我正在使用Promise,并且代码如下所示:

function getStuff() { 
  return fetchStuff().then(stuff => 
    process(stuff)
  ).catch(err => {
    console.error(err);
  });
}

要么:

async function getStuff() { 
  try {
    const stuff = await fetchStuff();
    return process(stuff);
  } catch (err) { 
    console.error(err);
  }
}

我这样做是为了避免遗漏错误,但有一位用户告诉我,我不应该这样做,而且对此一无所知。

  • return ….catch(err => console.error(err))有什么问题?
  • 我看过很多执行此操作的代码,为什么?
  • 我该怎么办呢?
trans by 2019-10-14T07:56:57Z

Node.js Express框架安全问题

我正在寻找应添加到Node / Express应用程序中的模块,以解决下面列出的一般安全问题:

  • 注入漏洞(JavaScript,SQL,Mongo,HTML)
  • 会话固定和劫持
  • 跨站点漏洞(脚本,伪造请求)
  • 批量分配
  • 在此插入相关的关注

谢谢你的帮助!

----------

我发现了一些资源:

精彩演讲(11/2012):[http://lanyrd.com/2012/asfws/sxzbm/](请参阅幻灯片)

ServerFault问题(2011-2012):[https://serverfault.com/questions/285123/is-node-js-mature-for-enterprise-security]

关于主题(9/2012)的博客文章:[http://codefol.io/posts/29-Why-Rails-and-not-Sinatra-or-Node-js-]

漏洞利用测试器:[https://code.google.com/p/skipfish/]

护照模块:[https://github.com/jaredhanson/passport]

EveryAuth模块:[https://github.com/bnoguchi/everyauth]

trans by 2019-10-14T07:53:18Z

angularjs-无法找到模块“ node-sass”中的错误

配置:macOS High Sierra,版本10.13.2,节点:v8.1.2 npm:5.0.3当我在我的angularjs项目中运行npm start时,出现以下错误:

ERROR in Cannot find module 'node-sass'

之后,我运行:

npm i node-sass

现在我得到这个错误:

gyp: No Xcode or CLT version detected!
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1

为什么npm不安装node-sass? 如何安装node-sass?

trans by 2019-10-13T22:20:08Z

node.js-npm警告未跳过跳过可选依赖项:fsevents@1.0.14不受支持的平台

我正在尝试运行此项目[https://github.com/Soundnode/soundnode-app]将我的minimatch版本更新为3.10.9后,即时通讯收到此错误

npm警告可选跳过功能:fsevents@^1.0.0(node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents):   npm WARN notsup跳过可选依赖项:fsevents@1.0.14不受支持的平台:wanted {“ os”:“ darwin”,“ arch”:“ any”}(当前:{“ os”:“ win32”,“ arch”: “ ia32”})

我的配置是节点v-4.4.2npm v- 3.10.9我在32位Windows OS上工作

trans by 2019-10-13T17:54:17Z

带有查询字符串参数的node.js http'get'请求

我现在有一个HTTP客户端的Node.js应用程序。 所以我在做:

var query = require('querystring').stringify(propertiesObject);
http.get(url + query, function(res) {
   console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
    console.log("Got error: " + e.message);
});

这似乎是完成此任务的足够好方法。 但是,我有些沮丧,我必须执行url + query步骤。 这应该由一个公共库封装,但是我还没有在node的http库中看到这个库,并且我不确定哪个标准npm包可以实现它。 有没有一种合理使用的更好的方法?

url.format方法节省了构建自己的URL的工作。 但理想情况下,请求的级别也将高于此级别。

trans by 2019-10-13T16:26:51Z

javascript-错误:getaddrinfo EAI_AGAIN

我的服务器今天抛出了这个,这是我从未见过的nodejs错误。

Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    at Object.exports._errnoException (util.js:870:11)
    at errnoException (dns.js:32:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

我想知道这是否与DynDns DDOS攻击有关,该攻击今天影响了Shopify和许多其他服务。 这是有关此的文章。

我的主要问题是dns.js会做什么? 节点的哪一部分分开? 我可以在其他域中重新创建此错误吗?

trans by 2019-10-13T14:40:30Z

javascript-Node.js:对于每个…都不起作用

我想在Node.js(v0.4.11)中使用for each ... in

我这样使用它:

var conf = {
   index: {
      path: {
         first: "index.html",
         pattern: "index/{num}.html"
      },
      template: "index.tpl",
      limit: 8
   },
   feed: {
      path: "feed.xml",
      template: "atom.tpl",
      limit: 8
   }
}

for each (var index in conf) {
  console.log(index.path);
}

我收到以下错误:

        for each (var index in conf) {
     ^^^^

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
SyntaxError: Unexpected identifier
    at Module._compile (module.js:397:25)
    at Object..js (module.js:408:10)
    at Module.load (module.js:334:31)
    at Function._load (module.js:293:12)
    at require (module.js:346:19)
    at Object.<anonymous> (/home/paul/dev/indexing/lib/Index.js:3:13)
    at Module._compile (module.js:402:26)
    at Object..js (module.js:408:10)
    at Module.load (module.js:334:31)
    at Function._load (module.js:293:12)

错误在哪里? 从Javascript 1.6开始支持for each ... in

有关for each ... in的用法,请参阅MDN。

trans by 2019-10-13T00:55:32Z

javascript-在运行时获取node.js版本

我与旧版本的node.js存在兼容性问题。

有什么方法可以在运行时获取node.js版本吗?

trans by 2019-10-12T23:59:46Z

javascript-如何ungzip(解压缩)NodeJS请求的模块gzip响应主体?

如何在请求的模块响应中解压缩压缩的正文?

我已经在网上尝试了几个示例,但是似乎都没有用。

request(url, function(err, response, body) {
    if(err) {
        handleError(err)
    } else {
        if(response.headers['content-encoding'] == 'gzip') {    
            // How can I unzip the gzipped string body variable?
            // For instance, this url:
            // http://highsnobiety.com/2012/08/25/norse-projects-fall-2012-lookbook/
            // Throws error:
            // { [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' }
            // Yet, browser displays page fine and debugger shows its gzipped
            // And unzipped by browser fine...
            if(response.headers['content-encoding'] && response.headers['content-encoding'].toLowerCase().indexOf('gzip') > -1) {   
                var body = response.body;                    
                zlib.gunzip(response.body, function(error, data) {
                    if(!error) {
                        response.body = data.toString();
                    } else {
                        console.log('Error unzipping:');
                        console.log(error);
                        response.body = body;
                    }
                });
            }
        }
    }
}
trans by 2019-10-12T22:11:55Z

Node.js:是否有关于process.env variab的任何文档

我在程序中使用了process.env,似乎这个变量与程序无关,没有它我的应用程序也可以正常工作。

那么如何充分使用process.env? 是否有任何有关的文档或教程?

trans by 2019-10-12T18:33:02Z

javascript-如何正确关闭node-express服务器?

var app = express();获得回调后,我需要关闭服务器网址。 使用通常的HTTP API关闭服务器当前支持var app = express();API函数,但是使用节点表达服务器,我得到TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close'错误。 而且我不知道如何找到解决此问题的信息。
我应该如何关闭快递服务器?

NodeJS配置说明:

$ node --version
v0.8.17
$ npm --version
1.2.0
$ npm view express version
3.0.6

实际应用代码:

var app = express();

// configure Express
app.configure(function() {
    // … configuration
});

app.get(
    '/auth/github/callback',
    passport.authenticate('github', { failureRedirect: '/login' }),
    function(req, res) {
        res.redirect('/');

        setTimeout(function () {
            app.close();
            // TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close'
        }, 3000)
    }
);

app.listen('http://localhost:5000/');

另外,我发现“ nodejs express close…”,但是我不确定是否可以将其与我拥有的代码一起使用:var app = express();

trans by 2019-10-12T18:12:53Z

多线程-在Node JS中真的是单线程的吗?

Node.js通过使用基于事件的模型而不是线程,将基于事件的模型置于其核心,从而解决了“每个连接一个线程的问题”。所有昂贵的I / O操作始终与在启动的操作完成时执行的回调异步执行。

如果发生任何操作,则由epoll()之类的多路复用机制处理该观察。

我的问题是:

  • 为什么在使用阻塞的系统调用时NodeJS不阻塞选择/投票/排队?

  • 还是根本不使用Node JS单线程,因此第二个线程是
    有必要通过select / epoll / kqueue观察所有I / O操作?

trans by 2019-10-12T12:29:21Z

node.js-节点js从fi获取文件夹路径

有没有一种方法可以获取到包含特定文件的文件夹的路径。

fs.realpathSync('config.json', []);

返回类似

G:\node-demos\7-node-module\demo\config.json

我只需要

G:\node-demos\7-node-module\demo\ 
or
G:\node-demos\7-node-module\demo\

是否有任何API或我需要处理字符串?

trans by 2019-10-12T00:36:27Z

javascript-使用clus将Socket.IO扩展到多个Node.js进程

用这个来扯掉我的头发。。。有人能将Socket.IO扩展到Node.js集群模块产生的多个“工作”进程吗?

可以说我在四个工作进程(伪)上具有以下内容:

// on the server
var express = require('express');
var server = express();
var socket = require('socket.io');
var io = socket.listen(server);

// socket.io
io.set('store', new socket.RedisStore);

// set-up connections...
io.sockets.on('connection', function(socket) {

  socket.on('join', function(rooms) {
    rooms.forEach(function(room) {
      socket.join(room);
    });
  });

  socket.on('leave', function(rooms) {
    rooms.forEach(function(room) {
      socket.leave(room);
    });
  });

});

// Emit a message every second
function send() {
  io.sockets.in('room').emit('data', 'howdy');
}

setInterval(send, 1000);

在浏览器上...

// on the client
socket = io.connect();
socket.emit('join', ['room']);

socket.on('data', function(data){
  console.log(data);
});

问题:由于四个独立的工作进程发送消息,因此我每秒收到四条消息。

如何确保消息仅发送一次?

trans by 2019-10-11T22:29:56Z

node.js-将Mongoose文档转换为json

我以这种方式将猫鼬文档作为json返回:

UserModel.find({}, function (err, users) {
    return res.end(JSON.stringify(users));
}

但是,还返回了user .__ proto__。 没有它我怎么能回来? 我尝试了这个但没有用:

UserModel.find({}, function (err, users) {
    return res.end(users.toJSON());    // has no method 'toJSON'
}
trans by 2019-10-11T02:30:56Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共147页