我有一個完美的Node.js項目,但它必須連接到ODBC數據庫,它必須在Windows上運行。我在linux上看到nodejs的ODBC模塊,但沒有看到windows。有沒有人有任何建議如何做到這一點?在Windows上的Nodejs ODBC連接
回答
NodeJS有一些潛力,但它仍然是一個玩具。前端程序員和後端程序員可以互換的想法是可笑的。但這是題外話...
微軟released自己的驅動程序。我沒有嘗試過,所以我不知道它們有多好。我想他們肯定有點不錯,因爲我在過去的8個月裏看到過多次針對NodeJS程序員的招聘信息。 (也不響應)。
我剛剛開始node.js,生病了csript.exe是主要原因。 這是該死的強大,而且非常令人印象深刻,花了我1小時建立一個完整的功能的整個網格。那麼我不是在這裏推廣node.js,我很喜歡它。 我找出但是一些非常有用... http://syskall.com/how-to-write-your-own-native-nodejs-extension/
因此,而不是重做什麼C++總是會做的更好,我同時使用的Node.js和C++實現最大效率的方式。
鏈接不可用? – ChristianNRW
如果你和我一樣從Google來到這裏,因爲你有舊的系統,所以我遇到了Is it possible to marry WSH (wscript) with nodejs,並提醒npm模塊「win32ole」:https://www.npmjs.com/package/win32ole。
雖然不僅僅是一個ODBC解決方案,「win32ole」確實能讓你在windblows盒子上做很多事情,就像老式的WSH一樣。
var win32ole = require('win32ole');
. . .
// Create an ADODB.Connection Object
dbcon = new ActiveXObject('ADODB.Connection');
如果(像我一樣),你是一個ODBC連接後,因爲要連接到一個Access數據庫,然後甚至有一個示例腳本直接使用Jet連接:
https://github.com/idobatter/node-win32ole/blob/master/examples/access_mdb_sample.js
編輯:它確實需要一個node-gyp,一個需要將代碼編譯爲本機的模塊...
與強大且性能卓越的數據庫驅動程序相比,Windows上node.js的數據庫驅動程序狀態似乎有些不成熟已經有了在ADO.NET多年。
我會認真考慮使用Edge來調用C#或一個CLR程序集進程來訪問你的數據庫。您可以在C#中編寫Repository樣式的數據訪問層,並從node.js中調用它。
我已經證明這可以在C#,PetaPoco(可選),.NET 4.5和Oracle ODP驅動程序(Oracle.DataAccess.dll)以及ADO.NET + SQL Server的開發環境中使用。這應該適用於任何可以在.NET中使用的數據庫。
節點(server.js)爲例來調用.NET CLR函數:
var edge = require('edge');
// define CLR function proxy
var getData = edge.func({
assemblyFile: '../Repositories/bin/Debug/Repositories.dll',
typeName: 'Repositories.TestRepository',
methodName: 'GetData' // This must be Func<object,Task<object>>
});
// call proxy function
getData({ myParam:1 }, function (error, result) {
if (error) throw error;
console.log(result);
});
的GetData C#看起來是這樣的(注意,你需要把你的連接字符串中node.exe.config包含的文件夾中node.exe):
public async Task<object> GetData(object param)
{
using (var db = new Database("NameOfConnString"))
{
return db.Fetch<dynamic>("SELECT * FROM sometable");
}
}
或者,如果使用SQL Server,則可以使用edge-sql。
節點例如使用邊緣-SQL(注意,你需要把你的連接字符串到環境變量按照邊緣-SQL文檔)(server.js):
var edge = require('edge');
// edge-sql has built in support for T-SQL/MSSQL Server
var getData = edge.func('sql', function() {/*
select top 10 * from sometable
*/
});
getData(null, function (error, result) {
if (error) throw error;
console.log(result);
});
- 1. windows服務上的ODBC數據連接
- 2. 使ODBC連接
- 3. ODBC連接字符串這麼想的工作在Windows上7
- 4. Postgres在Windows上與命名管道的ODBC連接
- 5. 用於在Windows上將node.js連接到odbc的庫?
- 6. Windows Server 2008 R2中的ODBC連接
- 7. 通過ODBC連接
- 8. 如何在Windows上使用PHP連接Pervasive ODBC?
- 9. MS SQL服務器:不能在Windows 7上連接ODBC?
- 10. ODBC連接池
- 11. 從Windows上的python連接到odbc的常見方法?
- 12. ODBC - 與連接
- 13. ODBC連接
- 14. 如何連接到系統ODBC連接是Windows 7上的Access 2010
- 15. JDBC ODBC連接
- 16. android odbc連接
- 17. JDBC-ODBC連接
- 18. Oracle ODBC dns連接
- 19. 在WinXP上連接到Access 2007的ODBC連接
- 20. 在Ubuntu上連接到MS-Access的ODBC連接
- 21. JDBC-ODBC連接
- 22. 如何連接到Windows上的ODBC數據庫?
- 23. codeigniter和odbc連接
- 24. SQL SLOW ODBC連接
- 25. 通過ODBC連接
- 26. Access 2013上的ODBC連接失敗
- 27. 不同子網上的ODBC連接?
- 28. heroku postgresql odbc連接錯誤
- 29. PHP PDO ODBC連接
- 30. android jdbc odbc連接
嗯,我有我自己的程序在Visual C++中,並將其添加爲node.js插件。它現在工作正常。 – Clint
我認爲編寫你正在尋找的附加程序可以讓你給自己一個答案和一個無恥的插件以及一個鏈接到附加組件。 –
哈哈,也許你是對的Erik,但是現在插件非常糟糕,我不想擁有它。我的C++技能非常糟糕。更糟糕的是,它最終不是異步的,這實際上挫敗了我的觀點。我結束了使用Python在Windows上具有良好的odbc支持:-) – Clint