我如何访问在节点中设置的函数并在浏览器上调用它?



在浏览器中-单击按钮我想从节点触发函数">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模块依赖于具有相同限制的特性,也不能捆绑。

(我不打算分析fpcalcfast-csv,看看他们是否也这样做)。


你没有使用express,所以你可以把它从你的脚本中删除。

你可以用替代的fs(比如将数据保存在localStorage中,或者用<input type="file">FileReader加载文件,并通过生成data:方案url和使用<a download href="data:...">来编写它们),然后你的脚本可能在浏览器中运行。

最新更新