javascript - 当服务器需要访问套接字之类的东西时,browserify如何才能使服务器代码在浏览器中运行?

javascript - 当服务器需要访问套接字之类的东西时,browserify如何才能使服务器代码在浏览器中运行?,第1张

我是否只是忽略了某些浏览器提供的功能,或者这个库是否使用了一些奇怪的解决方法来实现这些功能?

最佳答案:

2 个答案:

答案 0 :(得分:2)

实际上,它既不是也不是; - )

基本上,简单的答案是:Browserify不会将所有内容带入浏览器,只是从技术角度看实际有意义且可行的内容。

例如,您可以轻松拥有

url.format(...)

在浏览器中,因为这意味着只处理内存中的对象和字符串,但是你不能拥有

http.createServer(...)

因为这根本不起作用。除此之外,Browserify还为requiremodule.exports提供填充程序,因此您也可以在浏览器中使用CommonJS模块,但只要它们坚持那里可用的东西。同样,例如,无论是否使用Browserify,任何用C 编写的CommonJS模块都无法在浏览器中运行。

最后,Browserify使用几个基本上与Node.js API兼容的模块,但是已经为浏览器重写了,例如: http-browserify

所以,最后,它是所谓的“同构JavaScript”的一个很好的工具,换句话说:在服务器和浏览器中使用CommonJS模块,而不需要任何一方的特殊模式,例如作为AMD或UMD。

但是,当然,它没有提供任何魔力: - )

答案 1 :(得分:0)

Browserify不会为您的浏览器添加功能。它编译你的Node.js代码,以便它可以在浏览器中运行。

简而言之,Browserify允许您在浏览器端代码中使用Node textarea;它不会授予您的浏览器访问它尚未拥有的网络和文件系统的能力。

相反,您需要使用(或编写)模拟服务器端功能的自定义模块。例如,如果在服务器端代码中使用数据库模块(例如,Postgres或Mongo),则可以编写一个新的数据库模块(使用与服务器端模块相同的API),该模块使用浏览器支持的存储机制,如索引资料。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复