尝试为 node.js 制作 Hello World 本机模块
在 VS 2012 中获得了一个带有一个文件的 Win32 项目:
#include <node.h>
#include <v8.h>
using namespace v8;
Handle<Value> Method(const Arguments& args) {
HandleScope scope;
return scope.Close(String::New("world"));
}
void init(Handle<Object> target) {
target->Set(String::NewSymbol("hello"),
FunctionTemplate::New(Method)->GetFunction());
}
NODE_MODULE(hello, init)
编译成 hello.node。
选项:
- 动态库 (.dll)
- 无公共语言运行时支持
像这样使用它:
hello = require './hello'
console.log hello.hello()
它适用于本地机器(win8 x64,节点:0.8.12)
但在远程服务器(windows server 2008 x64,节点:0.8.12,iisnode:0.1.21 x64,iis7)上会抛出此错误:
应用程序引发了未捕获的异常并被终止:错误:
%1 不是有效的 Win32 应用程序。C:\inetpub\test\lib\server\hello.node
在 Object.Module._extensions..node (module.js:485:11)
在 Module.load (module.js:356:32)
在 Function.Module。 _load (module.js:312:12)
在 Module.require (module.js:362:17)
在 require (module.js:378:17)
在 Object. (C:\inetpub\test\lib\server\index.js:32:9)
在 Module._compile (module.js:449:26)
在 Object.Module._extensions..js (module.js:467:10 )
在 Module.load (module.js:356:32)
在 Function.Module._load (module.js:312:12)
我尝试了什么:
使用应用程序池设置(启用 win32 应用程序)没有帮助。
iisnode x86 不安装在 x64 操作系统上。
由于错误无法编译到 x64:错误 2 错误 LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突 C:\derby\hello\build\node.lib(node.exe) hello
有没有人有什么建议?