Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript和节点JS创建控制器API_Javascript_Node.js_Controller - Fatal编程技术网

使用Javascript和节点JS创建控制器API

使用Javascript和节点JS创建控制器API,javascript,node.js,controller,Javascript,Node.js,Controller,我是使用Javascript创建REST API控制器的新手,我有一个项目,应该将API放入控制器API组,但是我从我的API代码中搞不清楚应该将哪些代码放入控制器,应该将哪些代码放入服务,下面是一个代码,其中它必须是我的API代码 index.js ... const transporter = mail.createTransport({ service: service, host: host, auth: { user: user, pass: pass

我是使用Javascript创建REST API控制器的新手,我有一个项目,应该将API放入控制器API组,但是我从我的API代码中搞不清楚应该将哪些代码放入控制器,应该将哪些代码放入服务,下面是一个代码,其中它必须是我的API代码

index.js

...
const transporter = mail.createTransport({
  service: service,
  host: host,
  auth: {
    user: user,
    pass: pass
  }
});

router.post('/', routing.requireAuth, (req, res, next) => {
  
  validator.validateBody(req, {
    'fullName': {
      notEmpty: true
    },
    'site': {
      notEmpty: true
    },
    'email': {
      notEmpty: true
    },
    'phone': {
      notEmpty: true
    },
    'subject': {
      notEmpty: true,
      in: {
        option: [subject]
      }
    },
    'description': {
      notEmpty: true
    },
    'type': {
      notEmpty: true
    }
  }, (err) => {
    if(Err.invalidInput(next,err)) { return; }
      var fullName = req.body.fullName;
      var site = req.body.site;
      var email = req.body.email;
      var phone = req.body.phone;
      var subject = req.body.subject;
      var description = req.body.description;
      var type = req.body.type;
      const content = 'Name : ' + fullName + '\nSite : ' + site + '\nContact : ' + phone + '\nMessage : ' + description;
  
      const mailOptions = {
        from: fullName + '<' + email + '>',
        to: sendTo,
        replyTo: email,
        subject: type + ':' + subject,
        text: content
      };

      transporter.sendMail(mailOptions, (err) => {
        if(Err.unexpected(next, err)) { return; }
        
        res.status(201)
          .json(req.body)
          .end();
      });
    })
  });

module.exports = router;
。。。
const transporter=mail.createTransport({
服务:服务,,
主持人:主持人,,
认证:{
用户:用户,,
通过:通过
}
});
router.post('/',routing.requireAuth,(req,res,next)=>{
validator.ValidateBy(要求{
“全名”:{
注:对
},
“地点”:{
注:对
},
“电子邮件”:{
注:对
},
“电话”:{
注:对
},
“主题”:{
是的,
在:{
选项:[主题]
}
},
“说明”:{
注:对
},
“类型”:{
注:对
}
},(错误)=>{
if(Err.invalidInput(next,Err)){return;}
var fullName=req.body.fullName;
var站点=请求主体站点;
var email=req.body.email;
var phone=req.body.phone;
var subject=req.body.subject;
var description=req.body.description;
变量类型=请求主体类型;
常量内容='Name:'+fullName+'\n站点:'+site+'\n联系人:'+phone+'\n消息:'+description;
常量邮件选项={
发件人:全名+“”,
收件人:sendTo,
回复:电子邮件,
主题:类型+':'+主题,
文本:内容
};
transporter.sendMail(邮件选项,(错误)=>{
if(Err.unexpected(next,Err)){return;}
决议状态(201)
.json(请求正文)
.end();
});
})
});
module.exports=路由器;

谁能帮帮我吗?谢谢

您必须创建两个文件夹,一个是路由文件夹,一个是控制器文件夹

在route文件夹中创建
user\u routes.js
user.js
文件并添加如下代码

const express = require("express");
const router = express.Router();
const UserController = require("../controller/users_controller.js");

router.get("/Signup", UserController.Signup);
other routes related to users
在控制器中创建
用户\u controller.js
并添加代码

module.exports = {

Signup :  async (req, res) => {
 validator.validateBody(req, {
'fullName': {
  notEmpty: true
},
'site': {
  notEmpty: true
},
'email': {
  notEmpty: true
},
'phone': {
  notEmpty: true
},
'subject': {
  notEmpty: true,
  in: {
    option: [subject]
  }
},
'description': {
  notEmpty: true
},
'type': {
  notEmpty: true
  }
  }, (err) => {
  if(Err.invalidInput(next,err)) { return; }
  var fullName = req.body.fullName;
  var site = req.body.site;
  var email = req.body.email;
  var phone = req.body.phone;
  var subject = req.body.subject;
  var description = req.body.description;
  var type = req.body.type;
  const content = 'Name : ' + fullName + '\nSite : ' + site + '\nContact : ' + phone + 
'\nMessage : ' + description;

  const mailOptions = {
    from: fullName + '<' + email + '>',
    to: sendTo,
    replyTo: email,
    subject: type + ':' + subject,
    text: content
  };

  transporter.sendMail(mailOptions, (err) => {
    if(Err.unexpected(next, err)) { return; }
    
    res.status(201)
      .json(req.body)
      .end();
  });
})
 }
}
module.exports={
注册:异步(请求、回复)=>{
validator.ValidateBy(要求{
“全名”:{
注:对
},
“地点”:{
注:对
},
“电子邮件”:{
注:对
},
“电话”:{
注:对
},
“主题”:{
是的,
在:{
选项:[主题]
}
},
“说明”:{
注:对
},
“类型”:{
注:对
}
},(错误)=>{
if(Err.invalidInput(next,Err)){return;}
var fullName=req.body.fullName;
var站点=请求主体站点;
var email=req.body.email;
var phone=req.body.phone;
var subject=req.body.subject;
var description=req.body.description;
变量类型=请求主体类型;
常量内容='Name:'+fullName+'\n站点:'+site+'\n联系人:'+phone+
“\n消息:”+说明;
常量邮件选项={
发件人:全名+“”,
收件人:sendTo,
回复:电子邮件,
主题:类型+':'+主题,
文本:内容
};
transporter.sendMail(邮件选项,(错误)=>{
if(Err.unexpected(next,Err)){return;}
决议状态(201)
.json(请求正文)
.end();
});
})
}
}

在我的routes文件夹中输入用户所需的imort文件和帮助程序已经有控制器API了,如果在我的routes文件夹中有控制器API,我该怎么办?我已经确切地告诉您必须删除哪些代码以及在何处添加这些代码