Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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/8/api/5.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
Node.JS应用程序-任务和API_Node.js_Api_Task_Command Line Interface - Fatal编程技术网

Node.JS应用程序-任务和API

Node.JS应用程序-任务和API,node.js,api,task,command-line-interface,Node.js,Api,Task,Command Line Interface,一般性问题 我希望使用Node.js创建一个类似控制台的应用程序,它也具有api功能。它将具有定时任务,该任务将按计划运行,但也可用于向发送http请求。我的问题是,虽然我已经创建了api。我不知道如何创建基本任务,以便在服务器保持运行的同时按计划执行,以防对不同类型的任务发出http请求 主要思想是让任务计划运行,同时保持服务器运行并等待http请求 文件夹路径 文件夹 -控制器 -型号 -模块 -节点模块 -路线 一般文件 app.js package lock.json package.j

一般性问题

我希望使用Node.js创建一个类似控制台的应用程序,它也具有api功能。它将具有定时任务,该任务将按计划运行,但也可用于向发送http请求。我的问题是,虽然我已经创建了api。我不知道如何创建基本任务,以便在服务器保持运行的同时按计划执行,以防对不同类型的任务发出http请求

主要思想是让任务计划运行,同时保持服务器运行并等待http请求

文件夹路径

文件夹
-控制器
-型号
-模块
-节点模块
-路线
一般文件
app.js
package lock.json
package.json
server.js task.js


计划执行任务的建议区域:

index.js

const{checkTablesForData,requestRoutine,runNecessaryUpdate}=require('./task')
函数Main(){
...
\\待执行的任务
\\检查表中要处理的记录
设obj=checkTablesForData();
\\发送带有对象数据的第三方请求。ie-id
对象映射(id=>{
\\呼叫请求程序
请求例程(id)
})
\\运行最终流程
运行必需更新(id)
}
task.js


checkTablesForData(){
...
}
请求例程(id){
...
}
运行必需更新(id){
...
}
module.exports={runNecessaryUpdate,checkTablesForData,requestRoutine}

api设置代码

app.js

const express=require('express'))
const path=require('路径')
常量app=express()/,api=express();
const cors=需要(“cors”);
const bodyParser=require('body-parser');
app.get('/',函数(req,res){
res.redirect(“./api”)
})
常量api=要求('./路由/api');
应用程序使用('/api',api)
module.exports=app
server.js

const-app=require('./app');
const port=process.env.port | 3000;
app.listen(端口'localhost',()=>{
log(`Server正在端口${port}`上运行);
});
api.js


const express=require('express');
const router=express.router();
//控制器模块
const controller=require('../controllers/homeController');
//路线
router.get('/request/:id',controller.post)
module.exports=路由器;
controller.js


//向第三方api发送请求
export.post=功能(请求、回复){
常量选项={
....
}
退货申请(选项)
。然后(响应=>{
...
}
.catch(错误=>{
\\错误例程
}
}
非常需要建议


谢谢!

因为您没有显示任何代码或以任何方式描述这些任务,所以我们只能说您通常会使用
setTimeout()
计划在将来某个时候运行任务。您将设置一个http服务器来响应API请求。鉴于您提供的信息太少,不确定您还希望我们提供什么。这是一个一般性问题,但我将设置一些信息来提出一个想法。该网站证明比与一般的、非特定的问题相比,包括代码和对您试图做什么的详细描述。任务可以在同一进程中运行(如果它们不占用CPU,并且使用非阻塞I/O编码)或者它们可以在WorkerThread或它们自己的进程中运行,具体取决于需要。我不明白你在问什么。
server.listen(…)
启动你的服务器。
setTimeout(someCallbackFunction,someTimeValue)
计划在未来几毫秒内调用回调。只需调用这两件事,服务器就会启动。计时器已设置好。node.js进程可以执行多种类似操作。它可以侦听服务器上的传入请求,并可以管理计时器以在某个时间调用回调未来的时间。