作为一个javascript新手,我想使用Node.js创建一个带有非常少的后端解决方案的前端项目。
我有一个用户界面,包含一些变量和一个按钮。这些变量必须传递给一个简单的.txt文件(在我的文件系统上)并覆盖其内容。为此,我使用了nodejs脚本:
var fs = require('fs');
fs.writeFile('log.txt', 'This is my text', function (err) {
if (err) throw err;
console.log('Replaced!');
});
但我希望这可以在onClick上工作,而这只能在命令行中使用。
所以我遇到以下两个问题:
我100%肯定我错过了某些东西(也许是网络服务器,但即便如此,怎么样?)。我做了我的研究,但我发现的只是一个矫枉过正,或者我甚至都不理解它。任何帮助将不胜感激,教程,建议或只是一个关键词,我可以用于我的研究。
答案 0 :(得分:2)
Node.js没有内置的前端库,就像其他一些脚本语言一样,如Python或VB。要创建node.js,您的直觉是正确的,因为您需要将您的应用程序公开为Web服务器。 这样做的流行库叫做express,很容易上手。 我建议你按照express quickstart tutorial进入。
从这里,您可以将代码包装在网络服务器的路径中(例如/save
),例如
var fs = require('fs');
var express = require('express');
var app = express();
app.get('/save', function (req, res) {
fs.writeFile('log.txt', 'This is my text', function (err) {
if (err) throw err;
console.log('Replaced!');
res.send('Replaced!')
});
})
app.listen(3000, () => console.log('Example app listening on port 3000!'))
在安装了依赖项的示例中打开localhost:3000 /在浏览器中保存会导致代码运行。
答案 1 :(得分:0)
看看express。它是一个“节点的快速,独立,极简主义的Web框架”。有了这个,你可以建立一个小型的网络服务器:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World');
});
app.listen(3000); // Webserver is running on port 3000
如果您运行它并在http://localhost:3000
上访问浏览器,则会打印Hello World
。
现在,您每次请求特定URL时都会调用日志记录功能。
var fs = require('fs');
function log(text, callback) {
fs.writeFile('log.txt', text, callback);
}
app.get('/', function (req, res) {
log('This is my text', function (err) {
if (err) throw err;
res.send('Replaced!');
});
});
现在,当您单击按钮时,您需要向服务器发出AJAX请求(可能使用jQuery)。