gpt4 book ai didi

node.js - 为什么nodejs中app.js中console.log出现两次

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:27 25 4
gpt4 key购买 nike

我在 NodeJS 中编写了一段代码,当我点击 URL 时,我需要服务器通过三个中间件功能:身份验证、cookies、日志记录。这里发生了,但是控制台打印了两次。你能帮我找出原因吗?

var express                =   require('express');
var app = express();
var router = require('express').Router();

/* Add the middleware to express app */



app.use (function authentication(req,res,next){
if(req.method === 'GET'){

console.log("Inside Authentication.js")
next(); // If your don't use next(), the mmand won't go to the next function.
}
else{
console.log("Inside else Authentication.js")

}
})

app.use( function cookies(req,res,next){
if (req.method === 'GET'){
console.log("Inside cookies.js")
next();

}
else
{
console.log("Inside else cookies.js")

}
})


app.use( function logging(req,res,next){
if(req.method === 'GET'){
console.log("Inside Logging.js");
next();

}
else{
console.log("Inside else of Logging.js");

}
})



app.use(function(req,res) {
res.send('Hello there !');
});

app.listen(8080);

o/p -

E:\NodeJSProject\middleware>node app.js
Inside Authentication.js
Inside cookies.js
Inside Logging.js
Inside Authentication.js
Inside cookies.js
Inside Logging.js

最佳答案

您的浏览器将执行飞行前 CORS 请求(即 OPTION 请求),以查看是否允许您执行该请求。

从您的角度来看,这只是一个请求,但浏览器正在执行两个请求,并且您的 Express 服务器正在完整执行这两个请求。

鉴于您使用的是 express,有中间件可专门处理这些请求。

See here for documentation.

如果您想完全避免 CORS 请求,您的网站和 API 需要通过相同的主机、端口和协议(protocol)提供服务。

You can read more about CORS here ,或者您可以搜索 Stack——那里有大量的帖子。

关于node.js - 为什么nodejs中app.js中console.log出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54957409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com