无法在nodejs中导出函数
Not able to export function in nodejs
我在其中一个文件中定义了一个函数服务
import Category from '../models/Category.js';
export const AllCategories = () => {
console.log('hit');
const cursor = Category.find({});
console.log(cursor);
return cursor
}
export default {AllCategories}
我正在将其导入控制器文件
import express from 'express';
import categoryService from '../services/categories.js'
const router = express.Router();
export const getCategories = async(req,res) => {
try {
const categoriesInfo = categoryService.AllCategories
res.status(200).json(categoriesInfo)
} catch (error) {
res.status(404).json({ message: error.message });
}
}
export default router;
但问题是 AllCategories 没有得到 运行,这里有什么问题
我也试过添加async/await
import Category from '../models/Category.js';
export const AllCategories = async () => {
try {
console.log("hit");
const cursor = await Category.find({});
console.log(cursor);
return cursor
} catch (error) {
return error
}
}
export default {AllCategories}
但还是没有运气
您没有调用该函数,这会将其保存在变量中 categoriesInfo
:
const categoriesInfo = categoryService.AllCategories
获取其 return 值:
const categoriesInfo = await categoryService.AllCategories();
注意:如果您正在执行数据库事务,我认为您需要创建它 async
,因此请保留第二个版本并对其进行测试。
您不能在 node.js 中默认使用 ES module or ESM
语法。您要么必须使用 CommonJS
语法,要么必须执行以下操作之一。
- 将文件扩展名从
.js
更改为 .mjs
- 向最近的
package.json
文件添加一个名为 type
的字段,其值为 module
我在其中一个文件中定义了一个函数服务
import Category from '../models/Category.js';
export const AllCategories = () => {
console.log('hit');
const cursor = Category.find({});
console.log(cursor);
return cursor
}
export default {AllCategories}
我正在将其导入控制器文件
import express from 'express';
import categoryService from '../services/categories.js'
const router = express.Router();
export const getCategories = async(req,res) => {
try {
const categoriesInfo = categoryService.AllCategories
res.status(200).json(categoriesInfo)
} catch (error) {
res.status(404).json({ message: error.message });
}
}
export default router;
但问题是 AllCategories 没有得到 运行,这里有什么问题
我也试过添加async/await
import Category from '../models/Category.js';
export const AllCategories = async () => {
try {
console.log("hit");
const cursor = await Category.find({});
console.log(cursor);
return cursor
} catch (error) {
return error
}
}
export default {AllCategories}
但还是没有运气
您没有调用该函数,这会将其保存在变量中 categoriesInfo
:
const categoriesInfo = categoryService.AllCategories
获取其 return 值:
const categoriesInfo = await categoryService.AllCategories();
注意:如果您正在执行数据库事务,我认为您需要创建它 async
,因此请保留第二个版本并对其进行测试。
您不能在 node.js 中默认使用 ES module or ESM
语法。您要么必须使用 CommonJS
语法,要么必须执行以下操作之一。
- 将文件扩展名从
.js
更改为.mjs
- 向最近的
package.json
文件添加一个名为type
的字段,其值为module