我是Node js的新手,我正在使用带有hogan或小胡子的express来模仿我的观点。
我可以在我的路由文件中使用下面的代码,如下所示的index.js,它可以正常工作。
/* Test Shell Execute. */
router.get('/shell', function(req, res){
exec('ls -1', function (error, stdout, stderr) {
result = stdout.toString().split("\n");
res.render('shell', {
title: "Shell",
error: error,
stderr: stderr,
result: result
});
});
});
我想要做的是能够从我的视图中运行此命令和其他exec命令onclick事件。
当我在我的视图中尝试使用node require(" child_process")时,我得到一个javascript未定义的错误。如下所示。
<!DOCTYPE html>
<html>
<head>
<script>
window.onload= function() {
var exec = require('child_process').exec;
exec('ls -lrt', function (error, stdout, stderr) {
});
};
</script>
<title>{{ title }}</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1>{{ title }}</h1>
<p>Hello from {{ result }}</p>
</body>
</html>
从路由文件运行我的所有节点代码并来回查看我的视图似乎很乏味。我显然在这里犯了一个大错,但需要一些指导。
我可以从我的视图中运行节点代码吗?如果不是最好的方法是什么?
控制台输出:
ReferenceError: require is not defined shell:6
<!DOCTYPE html>
<html>
<head>
<script>
window.onload= function() {
var exec = require('child_process').exec;
exec('ls -lrt', function (error, stdout, stderr) {
答案 0 :(得分:0)
跟进评论;
req
和res
个对象可以附加任何您喜欢的对象。因此,实现您需要的任何东西都应该相当容易。最后;你可以发布更多的代码,这样我们就可以更好地了解你想要做什么,我们可以提出更好的建议。