f*******w 发帖数: 407 | 1 想了解一下node.js,按照指令把node.js下载安装了,安装的目录是:C:Program
Filesnodejs。想重复网上的例子(http://nodeguide.com/beginner.html#a-hello-world-http-server),比如把下面的code存成server.js:
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200);
res.end('Hello Http');
});
server.listen(8080);
教程说:
Now lets run this program from the terminal by typing:
$ node hello_http.js
请问:
一、server.js要存到那个目录下啊?
二、这里的terminal 是指双击node.exe打开的那个window吗?如果是的话,我这样做
了,可是我把“$ node hello_http.js”copy + paste + enter后得到的是三横而已啊?
教程还说打开browser输入http://localhost:8080/. 就可看到“Hello Http”。不知道是否能实现。
---
太菜鸟了(脸红),请不吝赐教。
菜鸟装过WAMP,好像装好以后,在browser下输入localhost就好了,任何html/js/php文
件存到www目录下就好了。不知道node.js是否也这么简单,只是还不知道门道而已。
谢谢! |
p***r 发帖数: 1098 | 2 这个instruction是跟Linux/Mac 用的
Win下面是不同的
我猜应该是:
node.exe hello_http.js
我认为你应该先学学linux和shell command
【在 f*******w 的大作中提到】 : 想了解一下node.js,按照指令把node.js下载安装了,安装的目录是:C:Program : Filesnodejs。想重复网上的例子(http://nodeguide.com/beginner.html#a-hello-world-http-server),比如把下面的code存成server.js: : var http = require('http'); : var server = http.createServer(function(req, res) { : res.writeHead(200); : res.end('Hello Http'); : }); : server.listen(8080); : 教程说: : Now lets run this program from the terminal by typing:
|
l******h 发帖数: 405 | |
f***y 发帖数: 247 | 4 oepn terminal: cmd+R, type "cmd", enter
navigate to where you store the server.js (http_hello.js?)
then node server.js
The node installation should have added its path to your env. If not, you
can use the absolute path to node.exe
【在 f*******w 的大作中提到】 : 想了解一下node.js,按照指令把node.js下载安装了,安装的目录是:C:Program : Filesnodejs。想重复网上的例子(http://nodeguide.com/beginner.html#a-hello-world-http-server),比如把下面的code存成server.js: : var http = require('http'); : var server = http.createServer(function(req, res) { : res.writeHead(200); : res.end('Hello Http'); : }); : server.listen(8080); : 教程说: : Now lets run this program from the terminal by typing:
|
l**********n 发帖数: 8443 | 5 node在local很容易setup。a js file, and ready to go. use npm to manage your
dependencies. run 'npm install' to get a default package.json file. use
bower to manager your client side modules. run 'node -v' to check the
version of your node installation. use require to import a module. You may
use 'npm info express version' to fetch the latest version of express. you
may use 'npm ls' to list the modules installed by npm in ./node_modules
directory. |
M***0 发帖数: 1180 | 6 搭车问个node的问题
每遇到一个IO操作都必须把剩余的代码写到callback function里,如果用在backend,
一个business method调用N个DAO methods共几十个SQL是很正常的,那code些起来不是
很麻烦? 要一直传callback functions, 无限嵌套耦合度非常高不是吗,代码维护怎
讲?
还是node只适合做SOA的front end,而且是每个操作不需要调用太多次backend API的
那种? |
p*****2 发帖数: 21240 | 7
N个DAO methods 并行还是串行?
【在 M***0 的大作中提到】 : 搭车问个node的问题 : 每遇到一个IO操作都必须把剩余的代码写到callback function里,如果用在backend, : 一个business method调用N个DAO methods共几十个SQL是很正常的,那code些起来不是 : 很麻烦? 要一直传callback functions, 无限嵌套耦合度非常高不是吗,代码维护怎 : 讲? : 还是node只适合做SOA的front end,而且是每个操作不需要调用太多次backend API的 : 那种?
|
M***0 发帖数: 1180 | 8 做业务的啊,全是串行
【在 p*****2 的大作中提到】 : : N个DAO methods 并行还是串行?
|
p*****2 发帖数: 21240 | 9
串行应该很好搞呀。自己搞也行,用library也行。我一般自己搞。
【在 M***0 的大作中提到】 : 做业务的啊,全是串行
|
f***y 发帖数: 247 | 10 you can use events:
http://nodejs.org/api/events.html
【在 M***0 的大作中提到】 : 搭车问个node的问题 : 每遇到一个IO操作都必须把剩余的代码写到callback function里,如果用在backend, : 一个business method调用N个DAO methods共几十个SQL是很正常的,那code些起来不是 : 很麻烦? 要一直传callback functions, 无限嵌套耦合度非常高不是吗,代码维护怎 : 讲? : 还是node只适合做SOA的front end,而且是每个操作不需要调用太多次backend API的 : 那种?
|
|
|
M***0 发帖数: 1180 | 11 假如我有一个service method要更新user info,但必须先查询该user是否active,代码
是不是像这样?
定义一个全局变量:
var eventEmitter = new events.EventEmitter();
DAO layer:
var isUserStatusActive = function isUserStatusActive(userId)
{
...
return true/false;
}
var updateUser = function updateUser(user)
{
...
}
eventEmitter.on("com.myapp.dao.userDao.isUserStatusActive",
isUserStatusActive);
eventEmitter.on("com.myapp.dao.userDao.updateUser", updateUser);
Service layer:
var validateAndUpdateUser = function validateAndUpdateUser(user)
{
if( eventEmitter.emit('com.myapp.dao.userDao.isUserStatusActive', user.
getUserId()) )
eventEmitter.emit('com.myapp.dao.userDao.updateUser', user);
}
就像是给每个method加一个ID (e.g. com.myapp.dao.userDao.isUserStatusActive'),
then caller calls the method by specifying the ID?
【在 f***y 的大作中提到】 : you can use events: : http://nodejs.org/api/events.html
|
p*****2 发帖数: 21240 | 12 我觉得不需要这么高
【在 M***0 的大作中提到】 : 假如我有一个service method要更新user info,但必须先查询该user是否active,代码 : 是不是像这样? : 定义一个全局变量: : var eventEmitter = new events.EventEmitter(); : DAO layer: : var isUserStatusActive = function isUserStatusActive(userId) : { : ... : return true/false; : }
|
M***0 发帖数: 1180 | 13 那怎么高?
【在 p*****2 的大作中提到】 : 我觉得不需要这么高
|
p*****2 发帖数: 21240 | 14
做两个函数
isActive
updateUser
【在 M***0 的大作中提到】 : 那怎么高?
|
M***0 发帖数: 1180 | 15 then? you still need one callback function per query, right?
My question is, when you have 10+ SQL queries in one business action, how to
write the code to keep it low-coupling and maintainable
【在 p*****2 的大作中提到】 : : 做两个函数 : isActive : updateUser
|
p*****2 发帖数: 21240 | 16
to
如果不用库的话,可以分成几个函数。思想都一样就是decouple.
【在 M***0 的大作中提到】 : then? you still need one callback function per query, right? : My question is, when you have 10+ SQL queries in one business action, how to : write the code to keep it low-coupling and maintainable
|