我一直在阅读ES模块和实验,并偶然发现了一个我无法解释的案例:
// settings.js
export const FOO = 42;
export const BAR= 5;
// main1.js
import * as settings from './settings';
settings.FOO = 1;
//main2.js
import {FOO, BAR} from './settings'
FOO = 1;
Run Code Online (Sandbox Code Playgroud)
在main1.js我能够const通过settings变量覆盖值,但在main2.js我不能(如预期).
(理论上)问题是为什么在第一种情况下可以覆盖这个const值?创建"只读视图"是否只是在常规对象上创建属性并破坏原始结构?
实际问题是从模块返回常量集合(或只读属性)的最有效方法是什么?我的想法是:
// settings.js
export default Object.freeze({
FOO: 42,
BAR: 5
});
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑:我正在使用巴别塔.
从我看到的,在Firefox和Chrome中,输入字段中文本光标的颜色变为"color"css属性的值.但是在IE中它没有任何效果.有没有办法在IE中实现这种效果?
我希望VSCode根据我的.gitignore配置自动排除文件/文件夹。
对于浏览器排除,我找到了扩展名(explorer-excluded-files用于管理files.exclude设置),但是对于快速打开的文件(cmd + p),我什么都没找到。
我想我可以尝试调整其他*.exclude设置,但是我想知道为什么没有一种全局方法来排除.gitignore所有相关位置中的条目吗?否则,每次.gitignore更改时我都必须手动同步设置。
我正在尝试做一个基本的事情:使用FormDataAPI 发送表单并在NodeJS中解析它。
在搜索了一个小时之后,我才发现使用ExpressJS和其他框架的答案是值得的:
我有这个HTML:
<form action="http://foobar/message" method="POST">
<label for="message">Message to send:</label>
<input type="text" id="message" name="message">
<button>Send message</button>
</form>
Run Code Online (Sandbox Code Playgroud)
JS:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://foobar/message');
xhr.send(new FormData(form));
Run Code Online (Sandbox Code Playgroud)
在NodeJS中,我正在做:
var qs = require('querystring');
var requestBody = '';
request.on('data', function (chunk) {
requestBody += chunk;
});
request.on('end', function () {
var data = qs.parse(requestBody);
console.log(data.message);
});
Run Code Online (Sandbox Code Playgroud)
但是data.message我得到了Webkit Boundary的东西(来自多部分表单数据格式)而不是预期的消息。是否有另一个内置库来解析多部分帖子数据而不是querystring?如果不是,那么该如何手动进行(高级,无需阅读Express的源代码)?
javascript ×2
ajax ×1
babeljs ×1
css ×1
cursor ×1
ecmascript-6 ×1
es6-modules ×1
forms ×1
gitignore ×1
http-post ×1
input ×1
node.js ×1
text ×1