GVKun编程网logo

如何在 ExpressJS 中删除 X-Powered-By [重复] - how to remove X-Powered-By in ExpressJS [duplicate]

13

对于如何在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 中删除 X-Powered-By [重复] - how to remove X-Powered-By in ExpressJS [duplicate]

问题:

This question already has answers here : 这个问题在这里已经有了答案
Can''t get rid of header X-Powered-By:Express (13 answers) 无法摆脱标题 X-Powered-By:Express (13 个回答)
Closed 6 years ago . 6年前关闭。

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/iy9t

Expressjs

Expressjs

Express 是一个简洁而灵活的 node.js  Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。

Express不是对node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。

Expressjs官方网站

官方网站:https://www.expressjs.com.cn/

如果觉得小编网站内容还不错,欢迎将小编网站 推荐给程序员好友。

ExpressJS 3.0如何将res.locals传递到玉视图?

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

如何解决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 req.body 总是空的?

我在使用 Expressjs 时遇到问题,无法读取 POST 数据。

我尝试了几种解决方案,仔细查看了我的代码,但找不到错误。

当我访问 /login/ 并插入电子邮件和密码并将其发布到我的服务器时,“req.body”始终为空。

enter image description here

当我使用 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">

有两个变化:

  1. 我在 name="email" 中添加了 input。这是将与表单一起提交的名称。

  2. 我更改了 for 上的 label 以匹配 id 上的 input(这就是您将标签链接到输入的方式)。 (这对于提交来说不是必需的,但是有必要将标签正确链接到 input,因为您没有将 input inside {{1} }}.)

,

我必须在表单输入标签中添加“name”属性:

enter image description here

关于如何在 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 总是空的的相关信息,请在本站寻找。

本文标签: