当前位置:首页 » 编程软件 » node执行文件里的脚本

node执行文件里的脚本

发布时间: 2022-08-28 06:04:37

‘壹’ 如何调试nodejs

Node Inspector 是一个可在webkit内核浏览器下进行nodejs调试的工具,其界面基本上跟chrome的调试工具一样,使用非常方便。

首先在全局环境中安装node inspector


[javascript]view plain

npminstall-gnode-inspector


安装完成之后,以调试模式运行需要调试的node代码,比如



[javascript]view plain

node--debug-brkapp.js


这种方式会在代码运行的时候,强制在第一行添加断点

这时,会出现“debuggerlisteningonport5858”的提示

默认的端口是5858,也可以像这样修改:

node--debug-brk[=3000]app.js


然后,启动node-inspector,

[javascript]view plain

node-inspector&

(因为之前的nodejs代码在运行,所以命令行窗口没办法输入新的命令,所以启动node-inspector需要新打开一个命令行窗口来输入)


根据提示中的地址,打开http://127.0.0.1:8080/debug?port=5858

就可以看到,一个模拟Chrome调试窗口的页面,加载了node中的所有代码,具体的调试方式,就和Chrome一样了。

还有一种方式是在代码中需要添加断点的地方,加入

[javascript]view plain

debugger;

以下面这种方式运行

[javascript]view plain

node--debugapp.js


这样代码会运行到需要debugger的地方暂停。

‘贰’ nodejs怎么在指定文件夹下运行

一、挖坑 & 掉坑:
缘起一段这样的代码:
fs.readFile('./docs/use.md', function (err, buffer) {
if (err) {
return console.log('error: ', err);
}

console.log('OK');
});

本地运行时一切 OK,线上部署时却死活找不到 ./docs/use.md 这个文件,后来才发现是因为线上启动应用时不是从当前目录启动了,不过为什么启动脚本的位置也会影响这个路径呢,且往下看。
二、填坑:
Node 中的文件路径大概有 __dirname, __filename, process.cwd(), ./ 或者 ../,前三个都是绝对路径,为了便于比较,./ 和 ../ 我们通过 path.resolve(‘./’)来转换为绝对路径。
先看一个简单的栗子:
假如我们有这样的文件结构:
app/
-lib/
-common.js
-model
-task.js
-test.js
在 task.js 里编写如下的代码:
var path = require('path');console.log(__dirname);console.log(__filename);console.log(process.cwd());console.log(path.resolve('./'));

在 model 目录下运行 node task.js 得到的输出是:
/Users/guo/Sites/learn/app/model.js/Users/guo/Sites/learn/app/model.js/task.js/Users/guo/Sites/learn/app/model.js/Users/guo/Sites/learn/app/model.js

然后在 app 目录下运行 node model/task.js,得到的输出是:
/Users/guo/Sites/learn/app/model.js/Users/guo/Sites/learn/app/model.js/task.js/Users/guo/Sites/learn/app
/Users/guo/Sites/learn/app

那么,不好意思不是问题来了~T_T,我们可以得出一些肤浅的结论了:
__dirname: 总是返回被执行的 js 所在文件夹的绝对路径
__filename: 总是返回被执行的 js 的绝对路径
process.cwd(): 总是返回运行 node 命令时所在的文件夹的绝对路径
./: 跟 process.cwd() 一样、一样、一样的吗?
我明明记得在 require(‘../lib/common’) 里一直都是各种相对路径写,也没见报什么错啊,我们还在再来个栗子吧,还是上面的结构,’model/task.js’ 里的代码改成:
var fs = require('fs');var common = require('../lib/common');

fs.readFile('../lib/common.js', function (err, data) { if (err) return console.log(err);
console.log(data);
});

在 model 目录下运行 node task.js,一切 Ok,没有报错。然后在 app 目录下运行 node model/task.js,然后很果断滴报错了:
那么这下问题真的都是来了,按照上面的理论,在 app 下运行时,../lib/common.js 会被转成 /Users/guo/Sites/learn/lib/common.js,这个路径显然是不存在的,但是从运行结果可以看出 require(‘../lib/common’) 是 OK 的,只是 readFile 时报错了。
那么关于 ./ 正确的结论是:
在 require() 中使用是跟 __dirname 的效果相同,不会因为启动脚本的目录不一样而改变,在其他情况下跟 process.cwd() 效果相同,是相对于启动脚本所在目录的路径。
三、总结:
只有在 require() 时才使用相对路径(./, ../) 的写法,其他地方一律使用绝对路径,如下:
// 当前目录下
path.dirname(__filename) + ‘/test.js’;
// 相邻目录下
path.resolve(__dirname, ‘../lib/common.js’);
四、参考链接:
What is the difference between __dirname and ./ in node.js
nodejs API
以上:smile:。

‘叁’ JS脚本怎么运行

常见的执行js代码都是放入到HTML引入后,然后通过HTML文件来执行胡查看代码。显然这是比较麻烦的事情,如果电脑里面安装了node.js,可以使用node来直接使用node来运行想要运行的js文件。

<html>

<body>

<script language="javascript">

function Card(owner,rate)

{

this.Owner=owner;

this.Rate=rate;

}

var mycard = new Card("X","150");

document.write("name:"+mycard.Owner+"speed:"+mycard.Rate);

</script>

</body>

</html>

(3)node执行文件里的脚本扩展阅读:

JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。

‘肆’ nodejs自带的web服务器可以运行shell脚本吗

你好。

可以运行 Shell 脚本。

用 child_process.spawn() 方法,具体看文档

你的采纳是我前进的动力,记得好评和采纳,互相帮助,

如果你认可我的回答,敬请及时采纳.

‘伍’ windows中node怎样执行本地的js文件

关于这个问题,我们首先要清楚,执行文件必须找到文件的路径,我们先进入电脑的dos命令界面(同时按住键盘上的windows图标和R键)

在弹出的运行窗口中输入"cmd"就会进入windows的dos命令运行界面了。

接下来是我们要怎样进入到目标JS所在磁盘的问题了。大家输入磁盘名加冒号,就可以进入相应的盘符了,例如D:

进入盘附后,再进入下一级目录,我们需要知道盘符内都有哪些文件,我们敲入dir,即可展示盘符中现有的文件,

然后我们输入cd加上想要进入的文件夹名称,就会进入到该文件夹。

然后,我们就按照这种命令,依次进入子文件夹(先dir,再cd加文件夹名字)

我们一直进入到js的上一级目录后,敲入node,进入"node模式",然后再出现“>”的这一行输入js文件的名字,(例如common.js),js文件就可以被执行了。

‘陆’ nodejs 怎样在浏览器中运行

在终端上运行mysqltest.js,它运行是脚本。它跟浏览器运行是不同的执行环境。虽然在运行在V8引擎(假设你用Chrome)上,执行环境和可用的库是不同的。
Node.js中,require()是一个功能,它被添加执行环境。当你在终端运行JS文件,在执行文件环境是包含require()的。

require()不是内置浏览器的功能。是Node.js特定的功能,所以你试图在浏览器上运行你的脚本(JS文件)时,将会得到地Uncaught ReferenceError: require is not defined地错误。

‘柒’ nodeJS 怎么运行 mongoDB 的JS脚本

var child_process = require('child_process');
var command = 'mongo --eval "JSON.stringify(db.serverStatus())"';
child_process.exec(command, function (err, stdout, stderr) {
console.log(stdout);
});

‘捌’ 如何在nodejs里调用执行系统命令

NodeJS 子进程提供了与系统交互的重要接口,其主要 API 有:
标准输入、标准输出及标准错误输出的接口
child.stdin 获取标准输入
child.stdout 获取标准输出
child.stderr 获取标准错误输出
获取子进程的PID:child.pid
提供生成子进程的方法:child_process.spawn(cmd, args=[], [options])
提供直接执行系统命令的方法:child_process.exec(cmd, [options], callback)
提供调用脚本文件的方法:child_process.execFile(file, [args], [options], [callback])
提供杀死进程的方法:child.kill(signal='SIGTERM')

热点内容
怎样编程时钟 发布:2025-02-07 21:59:38 浏览:561
夸克编程 发布:2025-02-07 21:43:43 浏览:528
电源450适合哪些配置 发布:2025-02-07 21:25:24 浏览:431
微信密码一般要多少位以上 发布:2025-02-07 21:24:19 浏览:879
sqldecimal转换 发布:2025-02-07 21:17:50 浏览:659
钢管查询源码 发布:2025-02-07 21:15:25 浏览:427
滨州服务器租赁地址 发布:2025-02-07 21:13:41 浏览:439
thinkphp删除数据库数据 发布:2025-02-07 21:12:03 浏览:946
安卓智能手机哪个更便宜 发布:2025-02-07 21:10:24 浏览:145
织梦数据库连接 发布:2025-02-07 21:09:32 浏览:354