我正在尝试创建一个测试注册页面。我已经能够让一切正常工作,并且服务器似乎已正确连接。
这是我的代码:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
// Middleware
app.use(bodyParser.json());
var Connection = require('tedious').Connection;
var config = {
server: 'XXXXXXXXXXXXXXXXXX', //update me
authentication: {
type: 'default',
options: {
trustServerCertificate: true
}
},
options: {
encrypt: false,
database: 'XXXXXXX', //update me
port: XXXXXXX
}
};
var connection = new Connection(config);
connection.connect();
connection.on('connect', function(err) {
// If no error, then good to proceed.
console.log("Connected");
ExecuteFunction();
});
connection.on('debug', function(err) { console.log('debug:', err);});
var Request = require('tedious').Request
var TYPES = require('tedious').TYPES;
app.get('/signup', (req, res) => {
res.sendFile("XXXXXXXXXXXXXXXXXXXXX");
});
function ExecuteFunction() {
// Route to handle signup request
app.post('/signup', (req, res) => {
const { username, email, password } = req.body;
var request = new Request('INSERT INTO Users (Username, Email, PasswordHash) VALUES (@username, @email, @password)', function(err) {
if (err) {
console.log("Error:", err);}
});
request.addParameter('Username', TYPES.VarChar, username);
request.addParameter('Email', TYPES.NVarChar, email);
request.addParameter('PasswordHash', TYPES.VarChar, password);
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
console.log(" New Signup " + column.value);
}
});
});
request.on("requestCompleted", function (rowCount, more) {
});
connection.execSql(request);
});
}
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
该文件应该创建本地节点服务器并连接到 SQL Server。然后它应该等待来自注册网页的请求。一旦它收到请求,就会将其发送到 SQL Server。
当前的问题是它连接并创建了本地节点服务器,但立即进入最终状态并且不允许新的请求。 SQL Server 配置可能是错误的
SentLogin7WithStandardLogin
,但我无法找到任何有关此内容的资源。
我是 SQL Server / Nodejs 新手,任何帮助将不胜感激!
每当我尝试使用连接调试运行它时,我都会收到以下消息:
Server running on port 3000
debug: connected to XXXXXXXXXXXXXXXX
debug: State change: Connecting -> SentPrelogin
debug: State change: SentPrelogin -> SentLogin7WithStandardLogin
Connected
debug: State change: SentLogin7WithStandardLogin -> Final
debug: connection to XXXXXXXXXXXXXXXX closed
debug: State is already Final
尝试加密:true,如果不起作用,请尝试查看 SQL 数据库的日志。
也尝试一下以帮助调试:
connection.on('connect', function(err) {
if (err) {
console.error("Connection Failed: ", err);
} else {
console.log("Connected");
ExecuteFunction();
}
});
希望这有帮助!