- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我向代码中添加 linter 时,我注意到出现了很多关于 'use strict';
的错误,因此我将该行添加到了很多文件中。然而,这破坏了我的主 app.js
文件中的一些代码,如下所示:
'use strict';
var express = require('express');
var timeout = require('connect-timeout');
//var logger = require('morgan');
var requireDir = require('require-dir');
var app = express();
// Load all the routes in the routes file into app middleware
// This assumes that the route exports an express.Router() object
var routes = requireDir('./routes');
for (var i in routes) app.use('/', routes[i]);
// Set the timeout
app.use(timeout('5s'));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = 'ERROR: Invalid request to the server';
err.status = 404;
next(err);
});
if (!module.parent) {
app.listen(3000);
console.log('engine-map-service opend on port 3000');
}
返回以下错误
堆栈:
TypeError: Cannot assign to read only property 'status' of ERROR: Invalid request to the server
at /usr/src/app/app.js:21:14
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:312:13)
at /usr/src/app/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:330:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:271:10)
at /usr/src/app/node_modules/connect-timeout/index.js:64:5
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:312:13)
at /usr/src/app/node_modules/express/lib/router/index.js:280:7
use strict
到底是什么?我读过几篇文章,但没有看到任何深入的内容来说明我可能需要如何改变我作为开发人员的行为,以及何时应该或不应该使用它。我发现不止一篇文章建议使用 use strict
开始每个 js
文件,但显然有些情况我遗漏了。
最佳答案
What does "use strict" do in JavaScript, and what is the reasoning behind it? 中广泛介绍了 use strict
的使用。 。
在您的具体情况下,它正在捕获一个 TypeError
,否则在运行时发生特定条件之前不会抛出该错误。
在错误处理程序中,您将创建一个名为 err
的字符串,然后尝试为其分配属性。您不能将属性分配给字符串。
如果您想创建一个包含消息和状态的错误对象,您可以执行以下操作:
app.use(function(req, res, next) {
var err = {
message: 'ERROR: Invalid request to the server',
status: 404
};
next(err);
});
关于javascript - 对 JavaScript/nodejs 中的 'use strict' 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32848468/
JavaScript 不关心字符串是双引号 "double" 还是单引号 'single'。 ECMAScript 5 严格模式的每个示例都通过双引号中的 "use strict" 启用。我可以执行以
这个问题在这里已经有了答案: What does "use strict" do in JavaScript, and what is the reasoning behind it? (30 个答
对于下面的代码片段 案例 1:严格模式 "use strict" let obj = { method: function(){ console.log(this); }, arr
function useStrict(){ "use strict"; } "use strict";
协议(protocol): http://opengraphprotocol.org/ 声明使用 带有 property 属性的标签. AFAIK,这不是有效的 XHTML 1.0 Strict 值。
我研究了一些库,它们似乎不包含文件或函数级别的 "use strict"; 行。因此,如果开发人员启用严格模式,那么我们如何知道库是否兼容?可能会有一些奇怪的功能或浏览器特定问题,这些问题在启用严格模
如果我们的 html 文件(导入外部 js 文件)已经有“use strict”,我们是否需要在外部 js 文件中加入“use strict”? 如果我们的外部 js 文件没有“use strict”
我相信这里的每个人都知道我们无法在不破坏 IE 兼容性的情况下为 XHTML 提供具有正确 MIME 类型 (application/xhtml+xml) 的页面,并且任何使用 text/html 提
我将这些定义放在一个文件中: x = 'a' : 'b' : 'c' : [] y = ['a', 'b', 'c'] (重要的是在文件中定义它们,而不是在 GHCi 中,因为在后一种情况下,事情变得
我想在 javascript 中使用 "use strict"; 模式,但在严格警告方面存在一些问题。我有一个“小部件”,例如: var Widget = function () { /* ... *
inline void addHeader(T value) { if(sizeof(T) > m_outputBufferStart) { std::clog <<
为什么 XHTML 1.0 Strict 显示的行高比 XHTML 1.0 Transitional 中相同值的行高显示得大? 因此,这将下推表格单元格中的内容(即 Firefox 中的 Hotmai
ECMAScript5中引入的严格模式,通过让JavaScript运行环境对一些开发过程中最常见和不易发现的错误做出和当前不同的处理,来让开发者拥有一个”更好”的JavaScript语言。很长一段时
I. Strict Mode阐述 根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制: 1).不支持对not null字段插入null值
本文分享自华为云社区《JS/TS里的"use strict"严格模式是什么?》,作者: gentle_zhou。 在日常JS/TS项目开发过程中,经常会在文件开头看到"use strcit"字样,这里
在本教程中,您将借助示例了解 JavaScript 的“严格模式”语法。 在 JavaScript 中,‘use strict’; 声明代码应该在“严格模式”下执行。这使得编写良好且安全的 J
我在学习 JS 时遇到了“use strict”。然后,这里Should I 'use strict' for every single javascript function I write? @B
嗨我最近一直在使用下面的命令 Ffmpeg -i song.mp3 -loop 1 -i image.jpg -filter_complex \ "[0:a]showfreqs=mode=line:a
如果 use strict;,我有几行代码可以工作被注释掉了。但是,我不想仅仅因为一小部分而在整个脚本中禁用它。 我需要重新编码,或者以某种方式禁用 use strict;暂时,然后重新启用它。第一个
在 Angular 10 中,您可以使用 ng new --strict 创建一个新项目。 Enabling this flag initializes your new project with a
我是一名优秀的程序员,十分优秀!