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

res.sendFile命令nodejs中出错

云浩然
2023-03-14

[

var express = require("express");
var app = express();
var port = 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/node-demo");
var nameSchema = new mongoose.Schema({
    firstName: String,
    lastName: String
});
var User = mongoose.model("User", nameSchema);

app.get("/", (req, res) => {
    res.sendFile(__dirname + "/index.html");
});

app.post("/addname", (req, res) => {
    var myData = new User(req.body);
    myData.save()
        .then(item => {
            res.send("Name saved to database");
        })
        .catch(err => {
            res.status(400).send("Unable to save to database");
        });
});

app.listen(port, () => {
    console.log("Server listening on port " + port);
});
<!DOCTYPE html>
<html>
    <head>
        <title>Intro to Node and MongoDB</title>
    </head>

    <body>
        <h1>Into to Node and MongoDB</h1>
        <form method="post" action="/addname">
            <label>Enter Your Name</label><br>
            <input type="text" name="firstName" placeholder="Enter first name..." required>
            <input type="text" name="lastName" placeholder="Enter last name..." required>
            <input type="submit" value="Add Name">
        </form>
    </body>
</html>

]

通过在localhost:3000上运行代码,我在bowser上得到了这个结果

类型错误:res.send文件不是一个函数在app.get(C:\用户\DeLL pc\文档\节点\app.js:18: 9)在回调(C:\用户\DeLL pc\文档\节点\node_modules\快递\lib\路由器\index.js:164: 37)在参数(C:\用户\DeLL pc\Documents\节点\node_modules\Express\lib\路由器\index.js:138: 11)通过(C:\用户\DeLL pc\Documents\节点\node_modules\Express\lib\路由器\index.js:145: 5)在路由器。_dispatch(C:\用户\DeLL pc\Documents\节点\node_modules\Express\lib\router\index.js:173: 5)在Object.router[作为句柄](C:\用户\DeLL pc\Documents\节点\node_modules\Express\lib\router\index.js:33: 10)在下一个(C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\<--PLHD--9/>: 15)在Object.urlencoded解析器[作为句柄](C:\用户\DeLL pc\Documents\节点\node_modules\body-parser\lib\类型\urlencoded.js:91: 7)在下一个(C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\proto.js:174: 15)在Object.json解析器[作为句柄](C:\用户\DeLL pc\Documents\节点\node_modules\body-解析器\lib\类型\json.js:110: 7)在下一个(C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\proto.js:174: 15)Object.express在下一个(C:\用户\DeLL pc\Documents\节点\node_modules\Express\lib\middleware.js:30: 5)(C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\proto.js:174: 15)在Object.query[作为句柄](C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\中间件\Query. js: 43:5)在下一个(C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\原型. js: 174:15)在Function. app. hand(C:\用户\DeLL pc\Documents\节点\node_modules\连接\lib\原型. js: 182:3)

共有1个答案

公孙阳文
2023-03-14

我所知道的res存在,但res.sendFile()不是函数的唯一原因是,如果您运行的是sendFile方法添加到快递。

文件中:

Express v4支持res.sendFile()。8.0以后。

您还可以添加一些日志来获取更多信息:

app.get("/", (req, res) => {
    console.log(typeof res.sendFile);
    console.log(res);
    res.sendFile(__dirname + "/index.html");
});

从控制台中,您可以看到使用以下命令行安装的Express版本:

npm view express version
 类似资料:
  • 问题内容: 我有以下代码: 但是,它引发此错误: 谁能告诉我为什么会这样吗? 问题答案: 我相信这是因为相对的路径。“ ../”被认为是恶意的。首先解析本地路径,然后调用。您可以事先解析路径。

  • 我有这个代码: 但是,它会抛出以下错误: 有人能告诉我为什么会这样吗?

  • 虽然Node.js最初是用于在JavaScript中编写服务器代码,但今天它被JavaScript工具广泛使用,这使得它也与前端程序员相关。 您将在本课程中使用的很多工具都使用Node.js.

  • 我构建了一个应用程序,我想为这个应用程序编写一个用nodejs编写的安装程序。安装程序应该做:-更新操作系统-更改ip/主机名-安装nginx、nodejs、节点附加模块(pg、pm2等),postgresql-从git hub下载应用程序-为配置文件制作控制器-使用pm2运行应用程序 我在internet上搜索,发现了来自节点的child_进程,我试图用它运行bash命令,但在“apt get

  • 我想按照他们键入的方式获取用户命令。唯一允许的区别是,可以代替“”,反之亦然。 例如,如果用户键入。 我想在控制台上记录以下内容之一。 但不可接受: 如上所述,引号可以不同于用户提供的引号(可以替换,反之亦然,如第B行),但它们不能放错位置(如第C行和第D行)。希望这是清楚的。 编辑:编辑整个问题以避免混淆。

  • 对于需要自动生成图表、纯后端生成图表图片、批量生成图表的情况,Nodejs 导出服务器可以满足这些需求。 一、安装 Nodejs 导出服务器 请参考 搭建导出服务器 进行安装,简单来说有两种安装方式 1、直接安装 npm 包 npm install highcharts-export-server -g 2、源代码安装 git clone https://github.com/highchart