对于如何在ExpressJS中删除X-Powered-By[重复]-howtoremoveX-Powered-ByinExpressJS[duplicate]感兴趣的读者,本文将会是一篇不错的选择,并
对于如何在 ExpressJS 中删除 X-Powered-By [重复] - how to remove X-Powered-By in ExpressJS [duplicate]感兴趣的读者,本文将会是一篇不错的选择,并为您提供关于Expressjs、ExpressJS 3.0如何将res.locals传递到玉视图?、ExpressJS req.body 为空 JSON、ExpressJS req.body 总是空的的有用信息。
本文目录一览:- 如何在 ExpressJS 中删除 X-Powered-By [重复] - how to remove X-Powered-By in ExpressJS [duplicate]
- Expressjs
- ExpressJS 3.0如何将res.locals传递到玉视图?
- ExpressJS req.body 为空 JSON
- ExpressJS req.body 总是空的
如何在 ExpressJS 中删除 X-Powered-By [重复] - how to remove X-Powered-By in ExpressJS [duplicate]
问题:
I want to remove X-Powered-By for Security,Save Bandwidth in ExpressJS(node.js).我想删除 X-Powered-By 以确保安全,在 ExpressJS(node.js)中节省带宽。 how to do it?怎么做? it could be filter(app.use) ?它可能是 filter(app.use) ?
app.use(function(req,res,next_cb){ /* remove X-Powered-By header */ next_cb(); }
解决方案:
参考: https://stackoom.com/en/question/iy9tExpressjs
Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。
Express不是对node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。
Expressjs官方网站
官方网站:https://www.expressjs.com.cn/
如果觉得小编网站内容还不错,欢迎将小编网站 推荐给程序员好友。
ExpressJS 3.0如何将res.locals传递到玉视图?
我想在用户登录失败后显示提示信息,但我无法在Jade视图中显示变量。
我有一些片段,我知道我必须在我的app.configure()中使用它:
app.use (req,res,next) ->
res.locals.session = req.session
在用户输入错误的密码后,我将设置闪存消息是什么:
exports.postSession = (req,res) ->
users = require '../DB/users'
users.authenticate(req.body.login,req.body.password,(user) ->
if(user)
req.session.user = user
res.redirect(req.body.redirect || '/')
else
req.session.flash = 'Authentication Failure!'
res.render('sessions/new',{title:'New',redirect: req.body.redirect })
)
我不知道如何访问res.locals.session
我的Jade文件。我怀疑我是否将所有设置正确。这个问题很像这样:将Express.js2迁移到3,特别是将app.dynamicHelpers()迁移到app.locals.use?但我仍然无法正常工作。如果有人可以向我展示一个简单的示例,说明如何在res.local中设置值并在视图中访问它们,将不胜感激。
ps我确实了解connect-flash,但是我需要了解如何使视图中的内容可用。
这是我的应用程序:
app.configure(() ->
app.set('views',__dirname + '/views')
app.set('view engine','jade')
app.use(express.bodyParser())
app.engine('.jade',require('jade').__express)
app.use(express.methodOverride())
app.use(express.cookieParser())
app.use(express.session({ store: new express.session.MemoryStore({reapInterval: 50000 * 10}),secret: 'chubby bunny' }))
app.use(express.static(__dirname + '/public'))
app.use((req,next) ->
res.locals.session = req.session
next()
)
app.use(app.router)
)
ExpressJS req.body 为空 JSON
如何解决ExpressJS req.body 为空 JSON?
当我使用 Postman 通过 JSON 访问我的 POST 端点时,我的 expressjs 应用程序错误地声称我的 JSON 是一个空对象。
版本:
快递:“4.17.1” npm: ''7.11.1'' 节点:''15.12.0''
代码:
index.js
const express = require( ''express'' );
const app = express();
const controller = require ( ''./modules/controller'' );
app.use( express.json() );
app.post( ''/broken'',( req,res ) => controller.post( req,res ) );
controller.js
module.exports.post = async ( req,res ) =>
{
const body = req.body;
log.debug( `body received from request ${JSON.stringify( body )}` );
}
邮递员配置:
POST 正文(原始):
{
"a":"b"
}
标题:
内容类型:应用程序/json
预期行为:
退出:body received from request {"a"="b"}
实际行为:
退出:body received from request {}
解决方法
Postman
只是想指出这个问题可能来自 Postman。当您在 Postman 上创建新调用时,它使用的默认正文(原始)类型是“文本”。需要将其设置为 JSON。
ExpressJS req.body 总是空的
如何解决ExpressJS req.body 总是空的?
我在使用 Expressjs 时遇到问题,无法读取 POST 数据。
我尝试了几种解决方案,仔细查看了我的代码,但找不到错误。
当我访问 /login/ 并插入电子邮件和密码并将其发布到我的服务器时,“req.body”始终为空。
当我使用 Postman 发布数据并将 Content-Type 设置为 x-www-form-urlencoded 时,我可以读取数据,但是如果我使用浏览器发布它们(尝试过 Firefox、Edge),则 req.body总是空的。
我也尝试设置标题,但它也不起作用。
代码如下:
const express = require(''express'');
const app = express();
const expressLayouts = require(''express-ejs-layouts'');
const mongo = require(''mongodb'');
const MongoClient = require(''mongodb'').MongoClient;
const ip = require(''ip'');
var dburl = "mongodb://localhost:27017/jsShop";
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(''/css'',express.static(''public/css''));
app.use(''/images'',express.static(''public/images''));
app.use(expressLayouts);
app.set(''view engine'',''ejs'');
app.set(''views'',[
''views'',''public/products''
]);
app.get('''',function(req,res) {
res.render(''index'');
});
app.get(''/index'',res) {
res.render(''index'');
});
app.get(''/technik'',res) {
res.render(''technik'');
});
app.get(''/kontakt'',res) {
res.render(''kontakt'');
});
app.get(''/admin'',res) {
res.render(''admin'');
});
app.get(''/login'',res) {
res.render(''login'');
});
app.get(''/register'',res) {
res.render(''register'');
});
app.get(''/products/articleoftheday'',res) {
res.render(''articleoftheday'');
});
app.post(''/login'',res) {
console.log(req.body);
res.redirect(''/login'');
});
app.post(''/register'',res) {
});
app.post(''/kontakt'',res) {
});
/*
function testDB() {
MongoClient.connect(dburl,function(err,db) {
if (err) throw err;
var dbobject = db.db("jsShop");
dbobject.collection("users").insertOne(data,res) {
if (err) throw err;
console.log();
});
});
}
*/
app.listen(80,function(err) {
console.log(''Server running on '' + ip.address() + ":80");
});
这是登录页面的 HTML 代码
<form action="/login" method="post">
<br>
<label for="email" id="emaillabel">E-Mail:</label>
<br>
<br>
<input type="text" id="emailinput">
<br>
<br>
<label for="passwort" id="passwortlabel">Passwort:</label>
<br>
<br>
<input type="password" id="passwortinput">
<br>
<br>
<input type="submit" value="Log-In" id="loginsubmit">
</form>
解决方法
您的表单字段没有 name
属性,因此它们不包含在表单提交中。仅提交带有 disabled
的非 name
元素。 (对于 input type="checkbox"
和 input type="radio"
,还必须检查它们才能提交。)
例如,您的电子邮件输入可能是:
<label for="emailinput" id="emaillabel">E-Mail:</label>
<br>
<br>
<input type="text" id="emailinput" name="email">
有两个变化:
-
我在
name="email"
中添加了input
。这是将与表单一起提交的名称。 -
我更改了
for
上的label
以匹配id
上的input
(这就是您将标签链接到输入的方式)。 (这对于提交来说不是必需的,但是有必要将标签正确链接到input
,因为您没有将input
inside {{1} }}.)
我必须在表单输入标签中添加“name”属性:
关于如何在 ExpressJS 中删除 X-Powered-By [重复] - how to remove X-Powered-By in ExpressJS [duplicate]的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Expressjs、ExpressJS 3.0如何将res.locals传递到玉视图?、ExpressJS req.body 为空 JSON、ExpressJS req.body 总是空的的相关信息,请在本站寻找。
本文标签: