小编msc*_*dex的帖子

在快速响应对象上获取 cookie 数据?

我只是在做一些 API 测试,并且试图验证发送下来的 cookie 数据是否正确,但是我找不到任何有关从响应对象获取 cookie 的文档,只能从请求中获取 cookie。

那么有没有一种快速的方法可以像处理请求一样执行此操作req.cookies["myCookie"],我知道我可以获取标头并从那里获取 set-cookie,但尝试从那里手动解析 cookie 数据有点混乱。

cookies node.js express supertest

5
推荐指数
1
解决办法
1669
查看次数

清除单个用户的所有会话

在我的网站上,我想要一个组织管理员能够重置用户密码的表单。理想情况下,当重置时,我想从保存 Express 和 Passport 会话数据的 RedisStore 中清除该用户的所有已识别会话。有没有人想出办法做到这一点?

redis node.js passport.js

5
推荐指数
1
解决办法
2095
查看次数

busboy - 有没有办法在所有文件上传后发送响应?

我正在尝试使用node.js作为后端并将angular.js作为前端上传文件到服务器.我正在使用快递4 + busboy.我在前端有一张桌子,我应该显示我正在上传的所有文件.因此,如果我有3个文件并单击上传,angular应该将这些文件发布到node.js,并在获得响应后,使用这三个文件刷新表.这是我在角度中使用的功能:

function uploadFiles(files){
    var fd = new FormData();
    for(var i = 0; i<files.length; i++){
        fd.append("file", files[i]);
    }
    $http.post('http://localhost:3000/upload', fd, {
        withCredentials: false,
        headers: {'Content-Type': undefined },
        transformRequest: angular.identity
    }).success(refreshTable()).error(function(){
        console.log("error uploading");
    });
}
Run Code Online (Sandbox Code Playgroud)

这是来自node.js:

app.post('/upload', function(req, res) {
  var busboy = new Busboy({ headers: req.headers });
  busboy.on('file', function (fieldname, file, filename) {
    console.log("Uploading: " + filename);
    var fstream = fs.createWriteStream('./files/' + filename);
    file.pipe(fstream);
  });
  busboy.on('finish', function(){
    res.writeHead(200, { 'Connection': 'close' });
    res.end("");
  });
  return req.pipe(busboy);
});
Run Code Online (Sandbox Code Playgroud)

问题是,如果我上传了三个文件,一旦上传了第一个文件,node.js就会发送响应,因此只有上传的第一个文件才会更新表,如果我刷新页面,其余的文件会出现.我认为问题在于节点中的这一行:return req.pipe(busboy); …

node.js busboy

5
推荐指数
1
解决办法
4003
查看次数

node.js事件循环如何记住它需要在长时间运行的操作完成后回调?

我是NODE.JS的新手.我在node.js中读到,只存在单个事件循环(因为它的单线程).

现在假设,案例就是这样,最终用户发出请求,下面的代码片段是用户试图运行的模块的一部分:

....some code before......    
longRunningOperation(argumentsForLongOperation, callbackMethod(argumentsForCallBack));
....some code after......
Run Code Online (Sandbox Code Playgroud)

由于nodejs是异步的,因此事件循环将调用longRunningOperation移动到下一行代码,如果模块中有任何代码行则执行.

现在当longRunningOperation返回时,我的事件循环如何知道它现在应该在longRunningOperation返回时运行回调.

在java中我们有方法堆栈,并且线程停留在longRunningOperation被调用的点,因此当函数返回时,线程从完成调用堆栈后恢复.

我的问题是如何在node.js中知道事件循环longRunningOperation已经返回并且它需要现在调用callBack()函数?

javascript multithreading node.js

5
推荐指数
1
解决办法
65
查看次数

正则表达式中美元符号的含义

你能帮我看看$下面正则表达式的用法吗?不明白有什么用?这是否意味着只是字符串的结尾?

p.match(/^\.\.?($|\/)/)
Run Code Online (Sandbox Code Playgroud)

javascript regex node.js

5
推荐指数
1
解决办法
5081
查看次数

Letsencrypt更新错误(Ubuntu,Nginx,Node.js)

我继承了一个配置(Ubuntu,Nginx,Node.js,LetsEncrypt),其中letsencrypt证书即将到期.

我试过这些命令:

./letsencrypt-auto --renew --config /etc/letsencrypt/renewal/domain.conf certonly

./letsencrypt-auto --renew --config /etc/letsencrypt/renewal/domain.conf -d domain.com -d www.domain.com

两个案件都收到了以下答复: letsencrypt: error: uir is a flag but is being set to 'None'

我试图将其更改为false或为空,但无法正常工作.

如何在此配置上续订LetsEncrypt证书?

ubuntu ssl nginx node.js lets-encrypt

5
推荐指数
1
解决办法
503
查看次数

错误:所有配置的身份验证方法均失败级别:“客户端身份验证”

我正在使用 node.js ssh2 模块。我已经通过执行命令“npm install ssh2”安装了 ssh2 模块。但是,当我使用 ssh2 连接到远程服务器时,它总是输出错误:[错误:所有配置的身份验证方法失败] 级别:“客户端身份验证”

这是我的代码

var Client = require('ssh2').Client
var conn = new Client();
var option = {
    host: '10.171.65.154',
    port: 22,
    username: 'root',
    password: '123456'
};

conn.on('ready', function(){
    console.log('Client :: ready');
    conn.sftp(function(err, sftp){
        if(err) throw err;
        sftp.readdir('home', function(err, list){
            if(err) throw err;
            console.dir(list);
            conn.end();
        });
    });
}).on('error', function(err){
    console.log(err);
}).connect(option);
Run Code Online (Sandbox Code Playgroud)

但是,我无法成功连接。我确定用户名和密码正确,并且可以通过 SecureCRT 成功连接。

它总是输出错误:[错误:所有配置的身份验证方法失败]级别:'client-authentication'

ssh node.js

5
推荐指数
1
解决办法
9824
查看次数

Node.js 连接 ECONNREFUSED 127.0.0.1:8000 DynamoDB 本地错误

我正在使用这个NPM 插件来处理在我的 Node 应用程序中创建本地 DynamoDB 本地服务器。出于某种原因,有时它会给我以下错误。不知道为什么,但在测试的特定部分运行测试时似乎总是会发生。

绝对不是每次都发生。也许 50% 左右。很奇怪。

我读到错误意味着启动 DynamoDB 本地服务器失败。但我不知道为什么,因为它没有提供更多细节。

DynamoDB Local failed to start with code 1
{ Error: connect ECONNREFUSED 127.0.0.1:8000
    at Object.exports._errnoException (util.js:1012:11)
    at exports._exceptionWithHostPort (util.js:1035:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
  message: 'connect ECONNREFUSED 127.0.0.1:8000',
  code: 'NetworkingError',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 8000,
  region: 'us-west-2',
  hostname: 'localhost',
  retryable: true,
  time: 2016-09-13T03:26:05.804Z }
Run Code Online (Sandbox Code Playgroud)

哦,这是我创建服务器的代码。

    dynamodbLocal.start({port : dbport, /* Port to listen on. Default: 8000 */
         cors : '*', /* Enable CORS support …
Run Code Online (Sandbox Code Playgroud)

javascript node.js amazon-dynamodb dynamo-local

5
推荐指数
0
解决办法
4266
查看次数

没有回调的nodejs mysql

有什么方法可以同步执行mysql查询吗?就像是

getUser:function(user_id){
  return mysql_connection.query("select ... ");
},
Run Code Online (Sandbox Code Playgroud)

像这样使用它

var user = getUser(id);
Run Code Online (Sandbox Code Playgroud)

mysql synchronous node.js

5
推荐指数
1
解决办法
2642
查看次数

TypeError:Key必须是新Hmac的缓冲区(crypto.js:91:16)

Server.js

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// server port is 3000
let port = 3000;

// use bodyParser.json and urlencoded
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true,
}));

// use api/v1, require routes/app.js
app.use('/api/v1', require('./routes/app.js')(express));

exports.server = app.listen(port, () => {
  console.log('Server active on port', port);
});
Run Code Online (Sandbox Code Playgroud)

app.js

// require url shortener
const shurl = require('../modules/shurl');

module.exports = (express) => {
  const router = express.Router();

  router.get('/status', (req, res) => {
    res.json({
      healthy: true,
    })
  });

  router.post('/urls', …
Run Code Online (Sandbox Code Playgroud)

node.js

5
推荐指数
1
解决办法
1万
查看次数