在浏览器中-单击按钮我想从节点触发函数">myFunction">
i have trybrowsify但是什么也没发生。
在本地主机(wamp)服务器上测试,结果正常
index . html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Title</title>
</head>
<body>
<p>
Input the order of the matrix
<br />
<input type="text" maxlength="3" name="value" id='valuee' value='5'/>
</p>
<button id="myButton">Click me!</button>
</body>
<script type="text/javascript" src="bundle.js"></script>
</html>
index.js(在Node Terminal中工作的变体)
const fs = require('fs')
const express = require('express');
function readDb(dbName = 'db.csv') {
// read JSON object from file
const data = fs.readFileSync(dbName, 'utf8')
return JSON.parse(data)
}
function writeDb(obj, dbName = 'db.csv') {
if (!obj) return console.log('Please provide data to save')
try {
fs.writeFileSync(dbName, JSON.stringify(obj))
return console.log('SAVE SUCESS')
} catch (err) {
return console.log('FAILED TO WRITE')
}
}
//function myFunction(){
const dataObj = {james:'144114'}
writeDb(dataObj)
module.exports = { readDb, writeDb }
console.log('You are on the browser');
//}
//else {
// console.log('You are on the server');
// }
取消注释myFunction (from above)并在node:browserify index.js>bundle.js
我得到**
myFunction它没有定义**在浏览器控制台访问localhost/index.html
解决方案吗?…提前感谢
注意browserify的输出
[jdkfjskdfjdkfjkdjfkd]寻求机会bundle.js
错误:Can't walk dependency graph: ENOENT: no such file or directory,/REDACTED/jdkfjskdfjdkfjkdjfkd/node_modules/on-finished/index.js
抛出错误并生成空文件bundle.js。
fs
模块内置于Node.js中。它不能被捆绑。它可以做浏览器不允许JavaScript做的事情。你不能在浏览器中运行你写的代码。
express
模块依赖于具有相同限制的特性,也不能捆绑。
(我不打算分析fpcalc
和fast-csv
,看看他们是否也这样做)。
你没有使用express
,所以你可以把它从你的脚本中删除。
你可以用替代的fs
(比如将数据保存在localStorage中,或者用<input type="file">
和FileReader
加载文件,并通过生成data:
方案url和使用<a download href="data:...">
来编写它们),然后你的脚本可能在浏览器中运行。