Javascript 什么是Node.js?
我不完全明白这一切。可能是因为我主要是一名基于web的业务应用程序开发人员。它是什么?它有什么用途 到目前为止,我的理解是:Javascript 什么是Node.js?,javascript,node.js,v8,evented-io,Javascript,Node.js,V8,Evented Io,我不完全明白这一切。可能是因为我主要是一名基于web的业务应用程序开发人员。它是什么?它有什么用途 到目前为止,我的理解是: 编程模型是事件驱动的,尤其是其处理方式 它使用,解析器是 它可以轻松地用于创建并发服务器应用程序 我的理解正确吗?如果是的话,那么事件I/O的好处是什么呢?它只是更多地用于并发性吗?另外,Node.js的发展方向是成为类似于基于JavaScript(基于V8)的框架编程模型吗 Node的目标是提供一种简单的方法 构建可扩展的网络程序 节点在设计上类似于Ruby的事件机或
- Node的目标是提供一种简单的方法 构建可扩展的网络程序
- 节点在设计上类似于Ruby的事件机或Python的Twisted等系统,并受其影响李>
- V8 javascript的事件I/O
// Pseudo code
stat( 'somefile' )
这可能需要几毫秒,也可能需要几秒钟。使用evented,您只需启动请求,而不是在周围等待,并附加一个在请求完成时运行的回调:
// Pseudo code
stat( 'somefile', function( result ) {
// Use the result here
} );
// ...more code here
这使得它非常像浏览器中的JavaScript代码(例如,具有样式功能)
要了解更多信息,您应该查看我介绍图书馆/平台的文章。。。我觉得它很好。我认为它的优点是:
闭包是在创建代码的上下文中执行代码的一种方式 这对Concurence意味着,您可以定义变量,然后启动一个非阻塞函数,并向它发送一个匿名函数以进行回调 当任务完成时,回调函数将在包含变量的上下文中执行,这就是闭包 闭包之所以非常适合使用非阻塞I/O编写应用程序,是因为它非常容易管理异步执行的函数的上下文。是为服务器端JavaScript代码构建的开源命令行工具。您可以下载、编译和安装源代码。它允许您运行JavaScript程序 JavaScript由Google开发的JavaScript引擎执行,该引擎用于浏览器。它使用JavaScript API访问网络和文件系统 它因其性能和执行并行操作的能力而广受欢迎 这是迄今为止我发现的最好的解释 下面是一些关于这个话题的好文章
两个很好的例子是关于如何管理模板和使用渐进式增强的。您只需要一些轻量级的JavaScript代码就可以让它完美地工作 我强烈建议您观看并阅读以下文章:
另一个很好的例子是,您可以使用同一段代码使您的网页与打开或关闭JavaScript兼容。假设您在JavaScript中选择了一个日期,允许您的用户使用日历选择任何日期。您可以编写(或使用)同一段JavaScript代码,使其在JavaScript打开或关闭的情况下工作。我在工作时使用Node.js,发现它非常强大。被迫选择一个词来描述Node.js,我会说“有趣”(这不是一个纯粹的积极形容词)。社区充满活力,不断发展。JavaScript,尽管它很奇怪,但可以成为一种很好的编码语言。您将每天重新思考自己对“最佳实践”和结构良好的代码模式的理解。现在Node.js中充满了巨大的思想能量,在其中工作会让你接触到所有这些思想——伟大的精神举重 Node.js在生产环境中绝对是可能的,但与文档中承诺的“交钥匙”部署相去甚远。使用Node.js v0.6.x,“cluste
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(myJavascriptObject.getSomeStatusInfo());
}).listen(1337, "127.0.0.1");
var myData = "foo";
database.connect( 'user:pass', function myCallback( result ) {
database.query("SELECT * from Foo where id = " + myData);
} );
// Note that doSomethingElse() executes _BEFORE_ "database.query" which is inside a callback
doSomethingElse();