我正在尝试为WHMCS网站设置teamspeak 3模块。
我根据教程做了一切。 但是我也在节点中编码了一个API,它与模块一起工作。 当我访问 0.0.0.0:3000 时,我收到错误"无法获取/" 我的防火墙已关闭,因此无法阻止任何端口。 这是我的api.js
"use strict";
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('tsdns.sqlite');
var express = require('express');
var app = express();
var config = require('./config.json');
db.serialize(function() {
db.run("CREATE TABLE IF NOT EXISTS zones (id integer primary key, zone varchar(100),target varchar(50))");
});
app.get('/list', function (req, res) {
if( req.headers.authorization == config.api_key ){
var zone = req.params.zone;
db.all("SELECT * FROM zones", function(err, rows) {
res.send('{"result":"success","message":' + JSON.stringify( rows ) + '}');
});
}else{
res.statusCode = 403;
res.send('{"result":"error","message":"Invalid auth token"}');
}
});
app.get('/add/:zone/:target', function (req, res) {
if( req.headers.authorization == config.api_key ){
var zone = req.params.zone;
var target = req.params.target;
var sql = "INSERT INTO zones(zone,target) VALUES(?,?)";
var stmt = db.prepare(sql,zone,target);
stmt.run();
stmt.finalize();
res.statusCode = 201;
res.send('{result:"success"}');
}else{
res.statusCode = 403;
res.send('{"result":"error","message":"Invalid auth token"}');
}
});
app.get('/del/:zone', function (req, res) {
if( req.headers.authorization == config.api_key ){
var zone = req.params.zone;
var sql = "DELETE FROM zones WHERE zone =?";
var stmt = db.prepare(sql,zone);
stmt.run();
stmt.finalize();
res.statusCode = 202;
res.send('{result:"success"}');
}else{
res.statusCode = 403;
res.send('{"result":"error","message":"Invalid auth token"}');
}
});
app.get('/get/:zone', function (req, res) {
if( req.headers.authorization == config.api_key ){
var zone = req.params.zone;
db.all("SELECT * FROM zones WHERE zone=?",zone, function(err, row) {
res.statusCode = 200;
res.send('{"result":"success","message":' + JSON.stringify( row ) + '}');
});
}else{
res.statusCode = 403;
res.send('{"result":"error","message":"Invalid auth token"}');
}
});
module.exports = app;
当我尝试访问例如http://0.0.0.0:3000/list时,我收到此错误 " {"结果":"错误","消息":"无效的身份验证令牌"}"
所以事情显然是错的。我是节点的新手,所以我无法弄清问题是什么。
这是我的server.js
var config = require('./config.json');
var api = require('./api.js');
var tsdns = require('./tsdns');
api.listen(config.api_port,config.api_ip, function () {
console.log('Api webservice running at %s:%s', config.api_ip, config.api_port);
});
tsdns.listen(config.tsdns_port,config.tsdns_ip, function () {
console.log('Tsdns running at %s:%s', config.tsdns_ip,config.tsdns_port);
});
当我希望API运行时,我应该开始这样做,然后它说明了这一点。
C:\ Users \ Administrator> node server.js Api webservice运行在0.0.0.0:3000 Tsdns运行于0.0.0.0:41144
因此它表示它正在运行且我没有收到任何错误,此API也没有任何错误日志。 这是API文件夹 CLICK HERE TO SEE IT
如果您希望我分享API的更多代码,那么我会。
答案 0 :(得分:0)
“/”没有GET路由,这就是你收到该消息的原因。 api应该只期望来自你的whmcs插件的请求,例如:
http://yourdomain.com/get/yourdnszone
还必须在请求标头中发送身份验证令牌。