當前位置:首頁 » 編程軟體 » 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')

熱點內容
clang編譯命令 發布:2025-02-08 00:41:24 瀏覽:127
數據結構c語言版演算法 發布:2025-02-08 00:28:19 瀏覽:663
python環境管理 發布:2025-02-08 00:26:51 瀏覽:999
個人簡歷源碼 發布:2025-02-08 00:26:43 瀏覽:14
html5canvas上傳圖片 發布:2025-02-08 00:20:44 瀏覽:169
安卓輸入法哪個詞庫好 發布:2025-02-08 00:03:47 瀏覽:92
c存儲過程數據集 發布:2025-02-08 00:03:42 瀏覽:925
qq卡的密碼在哪裡找 發布:2025-02-07 23:59:32 瀏覽:965
安卓為什麼注冊不了lysn 發布:2025-02-07 23:55:36 瀏覽:94
十個字母無壓縮 發布:2025-02-07 23:54:51 瀏覽:381