以连接ORACLE数据库为例:
//创建数据库连接对象var conn = new ActiveXObject("ADODB.Connection")
//创建数据集对象
var rs = new ActiveXObject("ADODB.Recordset")
try{
//如果不知道如何配置连接串,可以通过配置UDL文件后用文本编辑器打开获得
var connectionstring = "Provider=OraOLEDB.Oracle.1Password=pwdPersist Security Info=TrueUser ID=usernameData Source=ORA"
//打开连接
conn.open(connectionstring)
//查询语句
var sql = " select * from tb_col "
//打开数据集(即执行查询语句)
rs.open(sql,conn)
//遍历所有记录
while(!rs.eof){
//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。
//WScript.Echo输出记录的内容
WScript.Echo(rs.Fields("id") + "\t" + rs.Fields("name") + "\n")
//下一条记录
rs.moveNext() }
//关闭记录集
rs.close()
//关闭数据库连接
conn.close()} catch(e){
//异常报告
WScript.Echo(e.message)} finally{
}
数据库连接串,具体配置请参考:http://www.connectionstrings.com/
可以,但是不安全,所以没有实际工程用JS去操作数据库。------------------- //用 javascript 写服务器端连接数据库的代码示例 var conn = new ActiveXObject("ADODB.Connection")conn.Open("Provider=SQLOLEDB.1Data Source=localhostUser ID=sa" +"Password=Initial Catalog=pubs")var rs = new ActiveXObject("ADODB.Recordset")var sql="select * from authors"rs.open(sql, conn)shtml = ""shtml +="au_idau_lnameau_fnamephoneaddress citystatezip"while(!rs.EOF) { shtml += "" + rs("au_id") + "" + rs("au_lname") + "" + rs("au_fname") + "" + rs("phone") + "" + rs("address") + "" + rs("city") + "" + rs("state") + "" + rs("zip") + ""rs.moveNext} shtml += ""document.write(shtml)rs.close()rs = nullconn.close()conn = nullffi的全称是Foreign Function Interface,该项目生来就是解决nodejs本地调用问题的。在我们使用nodejs调用东来链接库时候,最繁琐容易出问题的就是配置环境阶段。下边我们就先分别看一下windows和linux下是如何安装的。
1 安装node 我node版本使用的8.9.0(高版本的测试使用过,但是没有成功)
如果你有其他项目必须使用高版本的node,可以使用nvm来管理node的版本。
2 安装
如果这两个都安装成功了,再去安装node-ffi就没有什么问题了。
1.和windows一样同样使用的8.9.0的版本。测试过高版本,没有成功过。
2.安装npm install -g node-gyp ,需要依赖python2.7
3.在linux下安装时需要注意权限问题
安装项目下的所有模块
npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。
为了避免这种情况,要么按照 npm 的规矩来,专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root。
4 安装完成后,项目放到了/home 目录下,编写项目保存时候总是提示,用户权限不足,就做了如下设置
1.引入ffi等模块
详细的使用方法,可查看 https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial