Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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 模块没有导出成员&x27;请求';_Javascript_Express - Fatal编程技术网

Javascript 模块没有导出成员&x27;请求';

Javascript 模块没有导出成员&x27;请求';,javascript,express,Javascript,Express,我看到有很多关于这个话题的帖子,但我没有看到任何与Express和我的特别问题相关的帖子,那就是: import * as express from 'express'; import { Request, Response, Application } from 'express'; // <-- Error here 非常感谢 更新:我不知道您使用的是typescript,请忽略原始答案 如果安装了typescript,则大写的导入应该可以工作-因为此包导出大写的类型: 可能在重启

我看到有很多关于这个话题的帖子,但我没有看到任何与Express和我的特别问题相关的帖子,那就是:

import * as express from 'express';
import { Request, Response, Application } from 'express';  // <-- Error here

非常感谢

更新:我不知道您使用的是typescript,请忽略原始答案

如果安装了typescript,则大写的导入应该可以工作-因为此包导出大写的类型:

可能在重启之前,types包还没有被索引。这是我考虑到问题已经解决的唯一猜测

=======================================

导入模块时,将加载列为的文件
package.json
。如果
package.json
中没有
main
文件,则从模块根目录加载
index.js

对于express,没有
main
文件,并且
index.js
加载
/lib/express

通过检查
/lib/express
,我们可以看到它以小写形式导出
请求
响应
应用程序
: :

因此,为了导入它们,您应该使用小写:

import { response, request, application } from 'express'; 

您希望将“请求”、“响应”和“应用程序”小写

当我运行此代码时:

console.log('a',express.application);
console.log('A',express.Application);

console.log('req',express.request);
console.log('Req',express.Request);

console.log('res',express.response);
console.log('Res',express.Response);
对于“A”、“Req”和“Res”,我得到了
未定义的


(我本想就此发表评论,但我不能留下评论。)

非常感谢您的回答。但现在我真的很困惑。我只是重新启动了我的机器,没有做任何更改,现在,令人惊讶的是,
import{Request,Response,Application}从“express”
以大写形式运行。此外,我对我的OP进行了如上编辑,以提供更多细节,说明为什么我认为这些应该是大写的。非常感谢您提前查看。@CrowdPleaser嗨,谢谢您的回复。我还没有意识到您使用的是打字脚本,很抱歉造成混淆。更新了答案。非常感谢您的回复。请查看我对OP的编辑。老实说,当我运行
node index.js
时,我在第一行遇到了一个错误:“``从'express'导入*as express;”SyntaxError:意外标记*```您能发布代码和特定错误吗?可能还包括一个链接,指向您尝试遵循的示例。这基本上是上面的完整代码,添加到我的OP中。指向我尝试遵循的文章的链接是:。奇怪的是,重新启动解决了问题,遵循您和@antoku的故障排除步骤肯定会表明
请求
响应
应该是小写,但不知何故,在大写时,它突然起作用了。非常令人困惑!那我就帮不了你了。我在第一行有个错误。没有你更多的帮助,我做不到更好的。如果您发布准确的代码和错误,internet帮助机器基本上会编写您想要的任何代码。;)哎呀。我的错。我以为我已经发布了完整的代码,但我没有保存它。我现在刚保存下来。
/**
 * Expose the prototypes.
 */

exports.application = proto;
exports.request = req;
exports.response = res;
import { response, request, application } from 'express'; 
console.log('a',express.application);
console.log('A',express.Application);

console.log('req',express.request);
console.log('Req',express.Request);

console.log('res',express.response);
console.log('Res',express.Response);