所以,我正在开发一个node.js应用程序,该应用程序将根据它在数据库中找到的位置在谷歌地图中显示一些标记,然后将其转换并保存到.txt文件中。直到那一刻,一切都很好。 如果我执行转换后的纬度和经度的console.log(),它将完美地显示它们。 但是,在带有maps api的.html文件中,我必须导入将返回坐标的文件。 由于此文件是用html编写的,脚本标签用于导入脚本,因此它将这些脚本解释为javascript,因此,它会停止工作。 Firebug告诉我文件被找到并向我显示它的内容,但在.js脚本文件中我必须做这样的事情来使用node.js模块,这是我的函数工作所必需的。
var fs = require('node-fs');
或者像这样使用其他模块的文件中的函数。
exports.someFunction = someFunction;
因此,当浏览器加载地图并尝试查找我从脚本中读取的坐标时,它会读取保存它们的.txt文件,它会找到这两个中的任何一个并且无法处理它们,因为它们是node.js,而不是普通的javascript。
所以我的问题是,当我们使用node.js命令时,如何让javascript识别require()和导出?
答案 0 :(得分:0)
如果我理解正确并且您尝试在浏览器中使用Node.js模块系统,那将无法正常工作。浏览器本身并未实现此类功能。脚本文件只能包含在带有脚本标记的页面或某种从服务器获取文件的ajax系统中。很少有这样的库提供这样的功能。
RequireJS可能是你正在寻找客户端的。
RequireJS是一个JavaScript文件和模块加载器。它针对浏览器内使用进行了优化,但可以在其他JavaScript环境中使用,例如Rhino和Node。使用像RequireJS这样的模块化脚本加载器可以提高代码的速度和质量。
另请注意,浏览器中无法使用某些Node.js功能。例如,在浏览器中无法进行直接文件系统访问,这将是一个巨大的安全风险。 大多数提供服务器端和客户端功能的javascript模块都明确提到它并为双方提供单独的脚本文件。
此外,如果您只想将协调数据从服务器发送到客户端,那么最好使用Ajax或WebSocket以JSON格式发送数据。