我只是在做一些 API 测试,并且试图验证发送下来的 cookie 数据是否正确,但是我找不到任何有关从响应对象获取 cookie 的文档,只能从请求中获取 cookie。
那么有没有一种快速的方法可以像处理请求一样执行此操作req.cookies["myCookie"]
,我知道我可以获取标头并从那里获取 set-cookie,但尝试从那里手动解析 cookie 数据有点混乱。
在我的网站上,我想要一个组织管理员能够重置用户密码的表单。理想情况下,当重置时,我想从保存 Express 和 Passport 会话数据的 RedisStore 中清除该用户的所有已识别会话。有没有人想出办法做到这一点?
我正在尝试使用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的新手.我在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()
函数?
你能帮我看看$
下面正则表达式的用法吗?不明白有什么用?这是否意味着只是字符串的结尾?
p.match(/^\.\.?($|\/)/)
Run Code Online (Sandbox Code Playgroud) 我继承了一个配置(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证书?
我正在使用 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'
我正在使用这个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) 有什么方法可以同步执行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) 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 ×10
javascript ×3
busboy ×1
cookies ×1
dynamo-local ×1
express ×1
lets-encrypt ×1
mysql ×1
nginx ×1
passport.js ×1
redis ×1
regex ×1
ssh ×1
ssl ×1
supertest ×1
synchronous ×1
ubuntu ×1