【发布时间】:2016-10-09 20:18:24
【问题描述】:
我在应用程序的后端使用 Node express 从 MSSQL 数据库中检索数据。我想通过另一个用 Ember 制作的应用程序来访问这个服务器。 Ember DS 不知道如何处理 MSSQL 返回的格式。
MSSQL返回的格式为:
[{
"var1": "abc",
"var2": "def",
"var3": 3
{
...
}]
而且,如果理解正确,应该是:
{
'modelName': [{
"_id": 1
"var1": "abc",
"var2": "def",
"var3": 3
},
{
...
}]
}
因此,它缺少记录的名称 (modelName) 和 ID/序列号。我想在 Express 服务器中解决这个问题,而不是在 Ember 应用程序的序列化程序中。我找不到如何在 Express 中将 MSSQL 的 JSON 输出修改为 Ember 可以理解的。
API 端点如下所示:
var express = require('express');
var app = express();
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:4200');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
next();
});
app.get('/api/data', function (req, res) {
var sql = require("mssql");
// config for your database
var config = {
user: 'user',
password: 'pass',
server: 'mssql-server',
database: 'db'
};
// connect to your database
sql.connect(config, function (err) {
if (err) console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query('SELECT * [dbo].[table]',
function (err, recordset) {
if (err) console.log(err)
// send records as a response
res.send(recordset);
});
});
});
var server = app.listen(8080, function () {
console.log('Server is running on localhost:8080...');
});
我们将不胜感激!
我正在使用(并且必须坚持使用)MSSQL 14。
【问题讨论】:
-
顺便说一句,我确实找到了这篇文章,它处理了同样的问题。只是找不到如何解决我的问题。 discuss.emberjs.com/t/…
-
你的意思是你想把它作为一个 api 暴露在 express 服务器上吗?您应该发布将执行此操作的端点。
-
我为 API 端点 @RobertMoskal 添加了代码
标签: sql-server json node.js express ember.js