Html 使用Shippo isn'的节点传送API;行不通

Html 使用Shippo isn'的节点传送API;行不通,html,node.js,http,api-design,shippo,Html,Node.js,Http,Api Design,Shippo,我正在构建一个API,今天我将我的API与HTML表单集成在一起。然而,它只是说“不能发布/新闻”。怎么了? My server.js: var express = require('express') var app = express() var http = require('http'); //Shippo shipping wrapper var Raven = require('raven'); var shippo = require('shippo')('shippo_test_

我正在构建一个API,今天我将我的API与HTML表单集成在一起。然而,它只是说“不能发布/新闻”。怎么了? My server.js:

var express = require('express')
var app = express()
var http = require('http');
//Shippo shipping wrapper
var Raven = require('raven');
var shippo = require('shippo')('shippo_test_key');
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
//Test

app.get('/', function (req, res) {
  res.send('Hello World! ' + 'hey')
})
app.post('/newship/', function (req, res) {

  var addressFrom  = {
      "object_purpose":"PURCHASE",
      "name": Mr Shippotester,
      "company":"Shippo",
      "street1":"215 Clayton St.",
      "city":"San Francisco",
      "state":"CA",
      "zip":"94117",
      "country":"US", //iso2 country code
      "phone":"+1 555 341 9393",
      "email":"support@goshippo.com",
  };

  // example address_to object dict
  var addressTo = {
      "object_purpose":"PURCHASE",
      "name": req.body.fnames + ' ' + req.body.lnames,
      "company": req.body.company,
      "street1":req.body.street,
      "city":req.body.city,
      "state":req.body.state,
      "zip":req.body.zipcode,
      "country": req.body.country, //iso2 country code
      "phone":"+1 555 341 9393",
      "email":"support@goshippo.com",
  };

  // parcel object dict
  var parcelOne = {
      "length":"5",
      "width":"5",
      "height":"5",
      "distance_unit":"in",
      "weight":"2",
      "mass_unit":"lb"
  };


  var shipment = {
      "object_purpose": "PURCHASE",
      "address_from": addressFrom,
      "address_to": addressTo,
      "parcel": [parcelOne],
      "submission_type": "DROPOFF"
  };

  shippo.transaction.create({
      "shipment": shipment,
      "servicelevel_token": "dhl_express_domestic_express_doc",
      "carrier_account": "account_id",
      "label_file_type": "png"
  })
  .then(function(transaction) {
      shippo.transaction.list({
        "rate": transaction.rate
      })
      .then(function(mpsTransactions) {
          mpsTransactions.results.forEach(function(mpsTransaction){
              if(mpsTransaction.object_status == "SUCCESS") {
                  console.log("Label URL: %s", mpsTransaction.label_url);
                  console.log("Tracking Number: %s", mpsTransaction.tracking_number);
                  console.log("E-Mail: %s", mpsTransaction.object_owner);
                  console.log(mpsTransaction.object_status);
                  res.status(200).send("Label can be found under: " + mpsTransaction.label_url));
              } else {
                  // hanlde error transactions
                  console.log("Message: %s", mpsTransactions.messages);
              }
          });
      })
  }, function(err) {
      // Deal with an error
      console.log("There was an error creating transaction : %s", err.detail);
      res.send("something happened :O")
  });
})
app.post('/successp', function (req, res) {

  var token = req.body.stripeToken; // Using Express
  // Charge the user's card:
var charge = stripe.charges.create({
  amount: 1000,
  currency: "eur",
  description: "Example charge",
  source: token,
}, function(err, charge) {
  // asynchronously called
});
 res.send('Thanks!')
})
app.post('/successp', function (req, res) {

  var token = req.body.stripeToken; // Using Express
  // Charge the user's card:
var charge = stripe.charges.create({
  amount: 1000,
  currency: "eur",
  description: "Example charge",
  source: token,
}, function(err, charge) {
  // asynchronously called
});
 res.send('Thanks!')
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})
我的HTML表单:

<!DOCTYPE html>
<html>
<head>
</head>




<form action="https://ocelot-kgxujaijbj.now.sh/newship/" method="post">
  Company (Leave blank if you don't belong to one): <input type="text" name="company"><br>
  First name: <input type="text" name="fnames"><br>
  Last name: <input type="text" name="lnames"><br>
  Street and Number: <input type="text" name="street"><br>
  City: <input type="text" name="city"><br>
  State: <input type="text" name="state"><br>
  ZIP/PLZ: <input type="text" name="zipcode"><br>
  Country (Please use the iso code, for example "US" for the USA or 'DE' for Germany): <input type="text" name="country"><br>
  <input type="submit" value="Submit">
</form>
</body>
</html>

公司(如果您不属于某个公司,请留空):
名字:
姓氏:
街道和编号:
城市:
状态:
ZIP/PLZ:
国家(请使用iso代码,例如“US”代表美国或“DE”代表德国):
服务器是有效的,因此您可以自己尝试。
提前谢谢

您在那里提交的代码有一些问题。此外,即使这是一个测试标记,我强烈建议您编辑那里的代码,以便在文章中省略它

我已经对您提供的代码进行了一些编辑,但您只是在
地址上出现了一些错误,例如,您在
Shippotester先生
周围缺少引号。另外,您还有一个额外的
,其中有
res.status(200.send)(“标签可在以下位置找到:“+mpsTransaction.Label\u url”)

我强烈建议查看您的
server.js
是否有任何错误(我会对它的实际运行感到惊讶)

var express=require('express'))
var app=express()
var http=require('http');
//Shippo装运包装
var Raven=需要(“Raven”);
var shippo=要求(“shippo”)(“”);
const bodyParser=require('body-parser');
const path=require('path');
use(bodyParser.urlencoded({extended:true}));
use(bodyParser.json());
app.use(express.static(path.join(uu dirname,'/'));
//试验
app.get('/',函数(req,res){
res.render('index.html');
})
app.post('/newship/',函数(req,res){
var addressFrom={
“目的”:“购买”,
“姓名”:“Shippotester先生”,
“公司”:“Shippo”,
“街道1”:“克莱顿街215号”,
“城市”:“旧金山”,
“州”:“CA”,
“zip”:“94117”,
“国家”:“美国”//iso2国家代码
“电话”:“+15553419393”,
“电子邮件”:support@goshippo.com",
};
//对象dict的示例地址
var addressTo={
“目的”:“购买”,
“名称”:req.body.fnames+“”+req.body.lnames,
“公司”:要求主体公司,
“街道1”:要求实体街,
“城市”:要求主体城市,
“状态”:请求主体状态,
“zip”:req.body.zipcode,
“国家”:req.body.country,//iso2国家代码
“电话”:“+15553419393”,
“电子邮件”:support@goshippo.com",
};
//包裹对象记录
var parcelOne={
“长度”:“5”,
“宽度”:“5”,
“高度”:“5”,
“距离单位”:“英寸”,
“重量”:“2”,
“质量单位”:“磅”
};
var装运={
“目的”:“购买”,
“address_from”:addressFrom,
“地址至”:地址至,
“地块”:[地块],
“提交类型”:“放弃”
};
shippo.transaction.create({
“装运”:装运,
“服务级别\u代币”:“dhl\u快递\u国内\u快递\u单据”,
“承运人账户”:“9f123316d413417d9cc48627c402772c”,
“标签文件类型”:“png”
})
.然后(功能(事务){
shippo.transaction.list({
“汇率”:交易价格
})
.然后(功能(MPS转换){
mpsTransaction.results.forEach(函数(mpsTransaction)){
if(mpsTransaction.object_status==“SUCCESS”){
日志(“标签URL:%s”,mpsTransaction.Label\u URL);
console.log(“跟踪编号:%s”,mptransaction.Tracking\u编号);
console.log(“电子邮件:%s”,mptransaction.object\u所有者);
console.log(mpsTransaction.object\u状态);
res.status(200).send(“标签可在“+mpsTransaction.Label\u url”下找到);
}否则{
//汉尔德错误事务
console.log(“消息:%s”,mpsTransactions.messages);
}
});
})
},函数(err){
//处理错误
console.log(“创建事务时出错:%s”,err.detail);
res.send(“发生的事情:O”)
});
})
app.post('/successp',函数(req,res){
var token=req.body.stripeToken;//使用Express
//向用户的卡收费:
var charge=stripe.charges.create({
金额:1000,
货币:“欧元”,
说明:“示例费用”,
资料来源:token,
},功能(错误,收费){
//异步调用
});
res.send('谢谢!')
})
app.post('/successp',函数(req,res){
var token=req.body.stripeToken;//使用Express
//向用户的卡收费:
var charge=stripe.charges.create({
金额:1000,
货币:“欧元”,
说明:“示例费用”,
资料来源:token,
},功能(错误,收费){
//异步调用
});
res.send('谢谢!')
})
应用程序侦听(3000,函数(){
log('端口3000上侦听的示例应用程序!')
})

公司(如果您不属于某个公司,请留空):
名字:
姓氏:
街道和编号:
城市:
状态:
ZIP/PLZ:
国家(请使用iso代码,例如“US”代表美国或“DE”代表德国):

您提交的代码存在一些问题。此外,即使这是一个测试标记,我强烈建议您编辑那里的代码,以便在文章中省略它

我已经对您提供的代码进行了一些编辑,但您只是在
地址上出现了一些错误,例如,您在
Shippotester先生
周围缺少引号。另外,您还有一个额外的
,其中有
res.status(200.send)(“标签可在以下位置找到:“+mpsTransaction.Label\u url”)

我强烈建议查看您的
server.js
是否有任何错误(我会对它的实际运行感到惊讶)

var express=require('express'))
var app=express()
var http=require('http');
//Shippo装运包装
var Raven=需要(“Raven”);
var shippo=要求(“shippo”)(“”);
常量bodyParse