当前位置: 首页 > 知识库问答 >
问题:

nodejs/express。createserver不是一个函数

邰棋
2023-03-14

我对诺德很陌生。js我正在尝试使用nodeEmailer发送电子邮件,我目前在控制台上收到一个类型错误。

//错误//[0]类型错误:express。createServer不是应用程序上的函数[0]。在第二层发布(/Users/thomashunt/Desktop/react_express_starter/server.js:33:17)[0]。在下一步处理[as handle_request](/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/layer.js:95:5)[0](/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/route.js:137:13)[0]。层上的调度(/Users/thomashunt/Desktop/react\u express\u starter/node\u modules/express/lib/router/route.js:112:3)[0]。handle[as handle_request](/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/layer.js:95:5)[0]at/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/index。js:281:22[0]at函数。下一步处理参数(/Users/thomashunt/Desktop/react\u express\u starter/node\u modules/express/lib/router/index.js:335:12)[0](/Users/thomashunt/Desktop/react\u express\u starter/node\u modules/express/lib/router/index.js:275:10)[]urlencodedParser(/Users/thomashut/Desktop/react\u express\u starter/node\u modules/body parser/lib/types/urlencoded.js:82:7)第三层为[0]。handle[as handle_request](/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/layer.js:95:5)

//错误结束

这是我服务器的代码。js文件:

const nodemailer = require('nodemailer')
const path = require('path')
const express = require('express')
const app = express()
const port = 5000
const cors = require('cors')
app.use(cors())
const bodyParser = require('body-parser')
app.use(bodyParser.json())
// to support JSON-encoded bodies
app.use(
  bodyParser.urlencoded({
    // to support URL-encoded bodies
    extended: true
  })
)

app.get('/home', (req, res) => {
  console.log(
    'Hello from .get /home',
    req.body.generalDetails,
    req.body.firstName,
    req.body.mName
  )
})

app.post('/home', (req, res) => {


  var express = require('express'),
  nodemailer = require("nodemailer");

  app = express.createServer();

  app.use(express.bodyParser());

  app.post('/formProcess', function (req, res) {
      var data=req.body;

      var smtpTransport = nodemailer.createTransport("SMTP",{
         service: "Gmail",
         auth: {
         user: "thomas.hunt@careertrackers.org.au",
         pass: "pass"
         }});

     smtpTransport.sendMail({  //email options
     from: "email",
     to: "thomas.hunt@careertrackers.org.au", // receiver
     subject: "Emailing with nodemailer", // subject
     text:req.body.generalDetails,
     html: "here your data goes"// body (var data which we've declared)
      }, function(error, response){  //callback
           if(error){
             console.log(error);
          }else{
             console.log("Message sent: " + res.message);
         }

     smtpTransport.close();
      }); });

  let data = [{
    //page one data
    generalDetails: req.body.generalDetails,
    fName: req.body.fName,
    mName: req.body.mName,
    lName: req.body.lName,
    email: req.body.email,
   }];

   res.json(data);

 }

);

app.listen(port, () => `Server running on port ${port}`);

共有1个答案

田昊天
2023-03-14

我想你把http模块搞混了。替换你的

app = express.createServer();

具有

app = express();

如果要使用createServer,应执行以下操作

const http = require('http');
const express = require('express');
var app = express();

... your route config

var server = http.createServer(app)
server.listen(3000, function () {
  console.log('Express is running on port 3000')
})
 类似资料:
  • 问题内容: 在NodeJS 模块 的文档中,示例代码包含。 什么是功能,它在哪儿定义? 问题答案: app对象在创建Express服务器时实例化。它具有一个可以在其中定制的 _ 中间件 堆栈_(现在在4.x版中已弃用)。 要设置中间件,您可以为要添加的每个中间件层调用(可以对所有路径通用,也可以仅在服务器处理的特定路径上触发),并将其添加到Express中间件堆栈中。中间件层可以在的多个调用中一个

  • 问题内容: 我试图编写登录到网站的节点功能,但无法使其正常工作。我试图等待页面使用加载功能 这是我到目前为止的内容: 当我运行该函数时,我收到错误消息。这是怎么回事,我想念什么? 问题答案: 为了与其他硒语言绑定的一致性, 并已被弃用。 如果您使用,则应尝试使用代替来确定元素是否存在,如下所示: 或者,如果您要等到欲望元素出现,则应尝试使用以下方法:

  • 我试图使用rxjs输入自动完成的目的,但我一直得到这些错误TypeError:terms.debounce时间不是一个函数,即使我设置这些导入'rxjs/操作员/DebounceTime'; 我称之为的函数是:

  • 在Angular2中尝试一个代码,它的HTML正在运行,但Angular代码没有执行,它表示我从HTML传递的值不是函数。请帮忙! HTML:app.html - 我正在尝试显示学生的详细信息。我在angular app.component.ts文件中有一个项目列表,我在HTML页面上调用它,工作正常。但是当我将单击事件的值传递给 app.component.ts 时,它会给出错误并在控制台上显示

  • 问题内容: 我试图要求一个文件,然后将其传递给var。我正在按照本教程创建身份验证系统。编写server.js文件并尝试编译后,出现bson错误,因此我更改了需要它的发行版本的猫鼬代码。 这是我的代码和错误: server.js 错误 我已经读到这通常意味着requireJS无法正确加载,但我不知道为什么或如何修复它。 根据评论进行编辑: 根据要求,这是 问题答案: 我认为这意味着在您的模块中未将

  • 在我的项目中,我创建了一个负责登录的组件。它返回一个表单并包含一个名为的验证方法。当前该方法如下所示: 我想让整个事情看起来更好,并用两个三元运算符和一个if语句切换了3个if语句: 但是,只要我尝试此操作,就会出现以下错误: TypeError:e.preventDefault(…)不是函数 我不知道在这里使用三元是如何影响事件对象的。特别是因为我在寄存器组件中以类似的方式完成了它,并且没有发生