首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Teamspeak 3模块API“无法获取/”

Teamspeak 3模块API“无法获取/”
EN

Stack Overflow用户
提问于 2017-01-22 11:04:09
回答 1查看 206关注 0票数 0

我正在尝试为我的WHMCS网站设置一个团队语言3模块。

我已经按照教程做好了所有的事情。但是,我也有一个在节点中编码的API,它与模块一起工作。当我访问0.0.0.0:3000时,我得到的错误“不能获取/”我的防火墙被关闭了,所以它不可能是被阻塞的任何端口。这是我的api.js

代码语言:javascript
复制
"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时,我会得到这个错误“{”结果:“错误”,“消息”:“无效的auth令牌”}“

所以很明显有什么不对劲。我对节点不熟悉,所以我不知道问题出在哪里。

这是我的server.js

代码语言:javascript
复制
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运行时,这就是我应该开始的,然后它会这样说。

运行在0.0.0.0:3000Tsdns的C:\Users\Administrator>node server.js Api webservice运行在0.0.0.0:41144

所以它说它正在运行,我没有收到任何错误,这个API也没有任何错误日志。这是API文件夹点击这里看它

如果你想让我分享更多的API代码,那么我会的。

EN

回答 1

Stack Overflow用户

发布于 2017-01-27 10:55:55

没有"/“的路径,所以你才会收到那条信息。api应该只期望whmcs附件中的请求,例如:

代码语言:javascript
复制
http://yourdomain.com/get/yourdnszone

还必须在请求头中发送一个auth令牌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41790104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档