当前位置:首页 » 编程软件 » node远程编译

node远程编译

发布时间: 2022-06-11 22:35:47

‘壹’ node.js请求远程数据,再用ajax向node请求数据

WaitForSingleObject(g_hEvent,INFINITE);
if(ticket>0)
{
Sleep(1);
cout<<"ticket 2:"<<ticket--<<endl;
}

‘贰’ linux系统下,node.js怎么远程连接sqlServer

Node.js一直都与mysql , Nosql 配合使用,对于Sql Server却没有很好的支持,一直都是小众技术人员自己编写访问程序。
2012年微软公司官方发行一款Node.js访问Sql Server的驱动程序——msnodesql ,让Node.js访问SQL Server更加简单。
安装
msnodesql 下载地址:下载 自行选择与自己系统相符的版本,点击安装。
msnodesql 官方地址:https://github.com/WindowsAzure/node-sqlserver 含wiki 和 疑问解答 。
在node.js环境下,安装方式和其他驱动安装一样,安装命令:nmp install msnodesql
安装过程中需要注意的两个问题:
1、安装之前必须安装SQL Server Native Client 11.0 32位下载地址:下载 64位下载地址:下载 ,安装此程序不需要SQL server2012支持,经测试,SQL 2005和SQL 2008 可以正常安装使用。
2、安装过程中,如出现错误,检查是否在管理员界面下进行命令安装,这个问题我纠结了好长一段时间。

(右键——以管理员身份运行)

使用
引用驱动
var sql = require('msnodesql');

建立数据库连接
var conn_str = "Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";

不要被 SQL Server Native Client 11.0 吓到,可以完美支持sql 2005和sql 2008 的。
打开数据库

sql.open(conn_str, function (err, conn) {
if (err) {
console.log("Error opening the connection!");
return;
}

//这里是查询语句
});

SQL操作

sql.queryRaw(conn_str,"SELECT * FROM TestTable",

function (err, results)
{
if (err)
{
console.log("Error running query!");
return;
}
for (var i = 0; i < results.rows.length; i++)
{
console.log("0:" + results.rows[i][0]); }
});

注意:此处的写法与wiki文档的写法有些不同,我用过wiki文档的写法(https://github.com/WindowsAzure/node-sqlserver/wiki),有时会出现无法查询数据的情况,w我这种写法是参考源代码中参数的写法,queryRaw包含四个参数:
connectionstring:链接字符串(wiki里面的居然没有用这个,直接用function里面的参数 conn,搞不懂)
query:SQL语句
param:参数(可选的)
callback:回传函数,操作完以后返回的事件

一个完整的例子

var sql=require('msnodesql');
var conn_str="Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";

sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}

sql.queryRaw(conn_str, "select * from users", function (err, results) {
if (err) {
console.log(err);
}
else {
for (var i = 0; i < results.rows.length; i++) {
console.log(results.rows[i][0] + results.rows[i][1]);
}
}
})

})

‘叁’ node 搭建的服务器怎样远程访问

怎么设置都不可以 必须通过第三方远程发布软件来操作 如果你采用类似虚拟远程的模式 数据就是明码传播了 对企业数据不安全 第三方远程就不会或者概率很小被破译

‘肆’ 如何在2016年成为一个更好的 Node.js 开发者

在2015年的夏天ES2015的最终草案(即ES6)正式发布了。在该版本中为JavaScript语言增加了大量的新的语言特性,主要包括:

箭头函数
模版字符串
rest operator(不定参数), argument spreading
生成器
promises
maps, sets
symbols

以及很多其他特性。一个更加完整的新特性的列表你可以从 Kyle Simpson
的 ES6 and Beyond
中进行了解。 它们中的绝大部分特性被加入到了Node.js v4中。

在客户端,你也可以借助Babel来使用ES6的所有新特性,Babel是一个JavaScript转译器。,目前为止, 在服务器端我们只倾向于使用那些被加入到最新的稳定版本的特性,而无需编译代码,避免出现那些令我们头疼的潜在问题。

对于Node.js中的ES6的更多信息,你可以访问官方站点: https://nodejs.org/en/docs/es6/

回调约定 - 同时支持Promise

在过去的一年,我们推荐你为模块暴露错误优先的回调函数接口。由于生成器函数已经标准化了,并且异步函数也即将来临, 因此你的模块应该暴露同时支持Promise的错误优先的回调函数。

为什么?为了提供向后兼容性,因此回调函数接口必须要提供,为了能够更好的为未来的兼容性做打算,你同时应该提供Promise支持。

为了说明如何达到这效果,可以参考如下的代码。在这个例子中 readPackage
函数读取了 package.json
文件, 并同时通过Promise和回调接口返回了它的内容。

异步模式

在Node.js中,很长一段时间你只有两种方法来管理异步流:回调或者流(Stream)。对于回调函数而言, 你可以使用类似于 async
这类库, 对于流而言,有 through
、 bl
、 highland


但是随着Promise、生成器、异步函数等被逐渐引入进标准的ECMAScript,JS中的流程控制也得到了极大的改变。

关于异步JavaScript的发展历史,你可以参考 异步JavaScript的发展历程
这篇博文。

错误处理

错误处理在应用开发过程中起着至关重要的作用:确定应用崩溃的时间,或者仅仅是打印错误信息,确保应用继续运行都是有一定难度的。

为了能够更简单的说明这个问题,我们决定将其分为两种:程序员错误(programmer errors)和运算错误(operational errors)。

程序员错误就是我们所说的bug,由于你不知道程序运行的确切状态因此当出现错误时你最好立刻停止应用的运行(crash the process)。

另一方面,运算错误是由于系统或者远程服务本身所导致的问题。例如:请求超时和内存不足等。基于错误发生的特点,你可以对症下药, 然后重试,例如文件丢失,你可以去创建相应的文件。

在回调中进行错误处理

如果一个错误发生在异步操作的过程中,错误对象应该作为异步函数的第一个参数进行传递。你必须始终要检查该错误对象并进行错误处理。

下面的代码判断显示了进行错误优先的回调函数处理的例子:

在Promise中进行错误处理

如果是下面的代码片段会发生什么情况?

在第3行会抛出一个异常。
catch会处理它,并且在stdout中打印出: [Error: ops]

执行继续,并且在第9行会抛出一个新的错误
没有了

的确没有什么了 - 最后一个被抛出的错误将会是静默的。你需要注意,你应该始终以一个catch语句作为promise链的最后一环。 这会为你解决很多头疼的问题。像下面这样:

现在会输出如下内容:
[Error: ops]
[Error: ops]

使用JavaScript标准风格

在过去几年中,我们会使用JSHint、JSCS、ESLint等非常有用的代码质量工具来尽可能的自动化检查我们的代码。

最近,当谈到代码风格的时候,我们使用 feross
的 JavaScript标准风格


原因是它非常的简单:无需任何配置文件,只需要将其放到项目中。主要包括如下一些规则:

使用2个空格作为缩进
字符串使用单引号 - 除了为了避免转义
不要包括没有被使用的变量
没有分号
永远不要以 ( 或者 [ 作为一行的开始
关键字后加空格 if (condition) { ... }

函数名后加空格 function name (args) { ... }

始终使用 ===
代替 ==
,但是可以使用 obj == null
来检查 null || undefined

始终要处理Node.js的 err
函数参数
始终要为浏览器全局变量增加 window
前缀,除了 document
和 navigator

尽可能避免使用类似于 open
、 length
、 evet
、 name
等走位浏览器全局变量。

当然,如果你的 编辑器只支持ESLint的话,这里有一个ESLint的规则库用于使用标准风格,即 eslint-plugin-standard
。 安装了这个插件后,你的 .eslintrc
文件可以是下面这样的:
{
"plugins": [
"standard"
],
}

‘伍’ 如何使用NodeJS写出一枚远程命令执行漏洞

当我们写了个NodeJS程序的时候,一般用node yourjsfile.js命令启动该程序。但是如果程序中有东西出错,这个进程就会退出。我们写程序不可能保证万无一失,肯定有些没有处理的错误,这就让很多人觉得NodeJS不稳定,容易产生很多故障。

‘陆’ 如何调试nodejs

1. 基于Nodejs内建的调试器
Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入debugger标签,当Nodejs执行到debugger标签时会自动暂停(debugger标签相当于在代码中开启一个断点)。代码如下:
var path = url.parse(req.url).pathname;
debugger;
res.writeHead(200, {'Content-Type': 'text/plain'});
执行命令:node debug example.js 就可以进入调试模式。

在debug模式下,可以使用内建命令如repl去评估变量和表达式的值(如2所示)。我们也可以通过help命令来获取完整的调试命令列表。
Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),
watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version

2. 基于V8插件的调试器
Nodejs是基于google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了,网上已经有很多的文章了(具体可以参考这篇文章http://cnodejs.org/blog/?p=911)。唯一要注意的是在默认情况下V8引擎支持的调试模式是本地模式。如果想要开启远程调试的话,我们需要修改Nodejs中的V8源文件:/deps/v8/src/platform-posix.cc
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); --> INADDR_ANY
addr.sin_port = htons(port);
然后重新编译Nodejs。
提示:
用插件来调试nodejs程序,你有时候会遇到什么connect refuse, get version failed等等错误。那么请注意你使用的ip的地址, 一般下127.0.0.1的回环地址是都工作的。如果你使用真实的ip地址,请检查防火墙设置。

3. 基于Chrome浏览器的调试器
既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能。我们需要先通过npm来安装node-inspector
npm install -g node-inspector // -g 导入安装路径到环境变量

node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听Nodejs的debug调试端口。

默认情况下node-inspector的端口是8080,可以通过参数--web-port=[port]来设置端口。在启动node-inpspector之后,我们可以通过--debug或--debug-brk来启动nodejs程序。通过在浏览器输入http://[ip address]:8080/debug?port=5858,我们会得到如下的调试窗口:

这三种方法各自有优缺点,我个人比较欣赏node-inspector的方式。
具体可以参考这个帖子:http://www.cnblogs.com/moonz-wu/archive/2012/01/15/2322120.html

‘柒’ 如何在本地调试远程服务器上的Node代码

方式一:通过debugger

方式二:通过sb(line)。

执行下一步
通过next命令。

跳到下一个断点
通过cont命令。

查看某个变量的值
输入repl命令后,再次输入变量名,就可以看到变量对应的值。如果想继续执行代码,可以按ctrl+c退出。

添加/删除watch
通过watch(expr)来添加监视对象。
通过watchers查看当前所有的监视对象。
通过unwatch(expr)来删除监视对象。
添加watch:

‘捌’ 如何使用node执行远程linux服务器命令

操作顺序: 1、打开本地终端,输入telnet命令: >> telnet 服务器ip 输入用户名 密码 登陆成功 2、转到oracle用户下,输入: >> su - oracle >> exp 根据Oracle的exp命令提供的到处向导,导出用户需要的数据到dmp文件中 myxxxoutxxx.dmp 3、接下来是讲这个dmp文件传到本地 两种方式 1、如果服务器端开启了ftpd 或者 sshd ,可以从本地连接过去,把dmp文件下载到本地 重新打开一个本地终端 >> ftp 服务器ip 输入用户名 密码 登陆成功 >> cd dmp文件目录的相对路径 >> get myxxxoutxxx.dmp 2、如果本地服务器开启了相关服务 可以从服务器端上传dmp文件到本地 >> cd dmp文件目录的路径 >> ftp 服务器ip 输入用户名 密码 登陆成功 >> put myxxxoutxxx.dmp 最后就是本地库的导入了 在终端中输入 imp 根据向导一步一步设置导入 或者用开发工具帮助导入

‘玖’ node2可以远程node1,但是node1不能远程到node2

感觉是防火墙的问题,可以在Linux中先暂时关闭防火墙测试一下:iptables -F 或者 service iptables stop
如果是防火墙配置的问题就需要进行正确的配置了。关闭防火墙是不安全的哦。
学习Linux建议参考《Linux就该这样学》,多敲多练习。加油吧

‘拾’ 请教大神们,我在eclipse 安装NODE.JS调试环境时候,添加软件源网址后,什么都不出来。这是为什么阿

原因:周知node是使用Google的V8引挚上层发开的产物。V8引挚天生只支持远程调试,当我们使用 node --debug script.js 方式启动node时,node默认监听 127.0.0.1:5858端口。如果我们的开发环境,与node的运行环境不是布署在同一台机器,这时Javascript Remote Debugger是无法连接上的,正由于此原因我们的node需要重新编译安装,我的做法事下。
1.重新tar开node-v0.6.9.tar.gz
2.修改源码node-v0.6.9/deps/v8/src/platform-posix.cc 查找到INADDRLOOPBACK修改为INADDRANY 如下图

3.保存 make & make install 即可
自此所需要环境己经全部完成。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371