Azure에서 node-sqlserver 또는 node-mssql 사용
-
22-12-2019 - |
문제
node-mssql을 사용하여 Azure의 데이터베이스에 연결하려고 합니다.내 개발 시스템은 Windows 7이고 WebMatrix를 통해 node-sqlserver를 설치하는 데 전혀 성공하지 못했습니다.
내 질문은 두 부분으로 구성됩니다.첫째, Microsoft의 지침을 따를 때에도 node-sqlserver에 오류가 발생하는 이유가 있습니까?WebMatrix 내에서 NPM을 사용하여 순진한 접근 방식을 시도하면 다음 오류가 발생합니다.
An error occurred.
"C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-sqlserver" "--json"
Exit status 1
Failed at the node-sqlserver@0.1.0 install script.
This is most likely a problem with the node-sqlserver package,
not with npm itself.
Tell the author that this fails on your system:
node-gyp rebuild
You can get their info via:
npm owner ls node-sqlserver
There is likely additional logging output above.
Failed: npm reported an error.
NodeNpm.NpmException: Failed: npm reported an error.
at NodeNpm.NpmApi.Install(INpmPackage package)
at Microsoft.WebMatrix.NpmGallery.CachingPackageManger.InstallPackage(INpmPackage package)
at Microsoft.WebMatrix.NpmGallery.PackageViewModel.Install()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
이 머신에는 VS2012 Professional이 설치되어 있습니다.
내 질문의 두 번째 부분은 Azure에서 node-mssql을 사용할 수 없는 이유가 있습니까?입니다.세부 정보를 여러 번 확인했는데도 연결 실패 오류가 발생합니다(아래 실제 값을 자리 표시자로 대체).
var config = {
user: '{username}',
password: '{password}',
server: 'tcp:{server}.database.windows.net',
database: '{database}'
}
다음 오류가 발생합니다.
{"name":"ConnectionError","message":"tcp 연결:{서버}.database.windows.net:1433 >- 실패 오류:getaddrinfo ENOTFOUND"}
node-sqlserver가 Azure에서 이를 수행하는 가장 좋은 방법이라는 것을 알고 있지만 며칠 동안 성공하지 못했습니다.내가 놓친 것이 분명합니까?
해결책
1)당신이 그것을 해결할 수 있습니 다운로드를 미리 컴파일 node-sqlserver
에서 드라이버 이 repo.지 않았을 컴파일 할 수원 내 컴퓨터에서도 모든 데브존성 설치됩니다.
2) node-mssql
모듈을 사용하여 세 가지 다른 드라이버와 통신하는 sql server.의 구성을 지정하지 않는 모든 드라이버,그래서 기본값은 사용 Tedious
.변경해야 합니다 당신의 구성을 그것이 제대로 작동:
var config = {
user: '{username}',
password: '{password}',
server: '{server}.database.windows.net', // simply remove "tcp:"
database: '{database}'
}
또한 사용하는 옵션 node-mssql
가 node-sqlserver
하지만 그것을 만들 작품을 설치 컴파일 node-sqlserver
driver 수 있습니다.구성은 다음과 같이 나타나야 합니다.
var config = {
driver: 'msnodesql',
user: '{username}',
password: '{password}',
server: 'tcp:{server}.database.windows.net',
database: '{database}'
}
다른 팁
모듈 이름이 작년에 Node.js에서 SQL Azure를 사용하고 있었습니다. node-sqlserver
그래서 내 대답이 효과가 없을 수도 있습니다.
첫 번째 문제를 참조하세요. node-mssql은 다음을 통해 컴파일해야 합니다. node-gyp
그리고 C++
NPM 설치 중.따라서 C++ 컴파일러가 설치되어 있는지 확인하는 것이 좋습니다.설치 중에 VS2010 C++가 필요하다는 메시지가 나타났습니다.지금 필요한지, 아니면 이후 버전이 필요한지 확실하지 않습니다.당신은 실행할 수 있습니다 npm install node-mssql
명령 창에서 실패하면 로그 파일을 가져와야 합니다. npm-error.log
또는 비슷한 것.
두 번째 문제를 참조하세요. 이 모듈을 사용할 때 연결 문자열을 사용합니다.사용자 이름이 형식으로 지정되었는지 다시 확인해 주시겠어요? user@server
.또한 다른 클라우드 서비스에 대해 SQL Azure 방화벽이 열려 있는지 다시 확인하세요.