小编Fed*_*eSc的帖子

node的bodyParser和express的urlencoded中间件有什么区别?

在阅读了两者之后,我仍然无法理解它,可能是语言差异,但请帮助澄清。

express.urlencoded()

返回仅解析 urlencoded 主体并仅查看 Content-Type 标头与类型选项匹配的请求的中间件。此解析器仅接受主体的 UTF-8 编码,并支持 gzip 和 deflate 编码的自动膨胀。

和

和body-parser中间件

在处理程序之前在中间件中解析传入的请求正文,在 req.body 属性下可用。

我知道这express.urlencoded是基于 Nodejs 的body-parser。和两个页面,

https://expressjs.com/en/api.html#express.urlencoded

和

https://expressjs.com/en/resources/middleware/body-parser.html

甚至说同样的警告:

由于 req.body 的形状基于用户控制的输入,因此该对象中的所有属性和值都不受信任,应在信任之前进行验证。例如,req.body.foo.toString() 可能会以多种方式失败,例如 foo 可能不存在或可能不是字符串,而 toString 可能不是函数而是字符串或其他用户输入。

但最终都给了我一个req.body在请求正文对象中发送的参数。那么为什么我应该使用 body-parser(我必须单独安装)而不是总是使用express.urlencoded()

我知道这不是代码问题,但我提前感谢任何可以列出主要差异的人。

javascript urlencode node.js express body-parser

8
推荐指数
1
解决办法
4399
查看次数

防止底层div onclick事件触发

我正在尝试创建一个覆盖层,其中有一个外部 div(半透明),并且位于较小的内部内容 div 之上。单击外部区域会使覆盖层消失。单击内容区域应与覆盖内容进行交互。

查看我的示例代码,单击红色区域首先会引发“红色”警报,然后引发“黑色”警报,从而在第一次交互后立即关闭叠加层。

如何防止点击上面的红色div时触发底层黑色div的onclick事件?

    <div onclick = "window.alert('black')" style = "background-color:black; width:100%; height:100%">
    	<div  onclick = "window.alert('red')" style = "background-color:red; position: absolute; top:10%; left:10%; width: 80%; height: 80%;">
    		some content
    	</div>
    </div>
Run Code Online (Sandbox Code Playgroud)

我在网上找不到任何与此相关的信息,除了人们设置的pointer-events将none禁止用户与覆盖内容交互之外。设置不同也z-indeices不起作用。

如果您想验证点击发生情况: https: //onlinegdb.com/rJbOmB0FV

html javascript

6
推荐指数
1
解决办法
2164
查看次数

Is there a way to re-use a template literal in Javascript?

I'm trying to re-use a template literal in javascript.

This isn't working:

let int;
let temp= `Number is: ${int}`;
console.log(temp)
// Number is: undefined
int = 1;
console.log(temp)
// Number is: undefined
int = 2;
console.log(temp)
// Number is: undefined

Run Code Online (Sandbox Code Playgroud)

I thought that changing int variable will dynamicaly change in the template. but i learned otherwise :D

Is it even possible and if so what is the right way of doing it?

Thanks.

javascript template-literals

3
推荐指数
1
解决办法
107
查看次数

MySql 错误代码:1175。您正在使用安全更新模式 - 即使使用主键

我有以下查询:

UPDATE borsalino_db.reservations SET confirmed=if(confirmed=1, -1, 0) WHERE confirmed = 1;
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
Run Code Online (Sandbox Code Playgroud)

仅当我添加

SET SQL_SAFE_UPDATES = 0;
UPDATE borsalino_db.reservations SET confirmed=if(confirmed=1, -1, 0) WHERE confirmed = 1;
SET SQL_SAFE_UPDATES = 1;
Run Code Online (Sandbox Code Playgroud)

有用。但在我看来这样做是错误的。我不想禁用安全模式。所以我尝试添加confirmed为主键,但仍然收到错误。

在此输入图像描述

关于如何解决这个问题有什么想法吗?谢谢

mysql

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